==注解==
将配置文件中配置的每一个属性的值,映射到这个组件中
@ConfigurationProperties:告诉springboot将本类中的所有属性和配置文件中相关的配置进行绑定
prefix= "person":与配置文件中下面的所有属性一一映射,
只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能
-----------------------------------------------------------------------------
@ConfigurationProperties(prefix = "person")
@Value
@Override
@Component
-------------------------------------------------------
可以加载指定的配置文件;
@PropertySource(value = {"classpath:person.properties"})
-------------------------------------------------------
导入spring的配置文件,让配置文件里面的内容生效;
@ImportResource
-------------------------------------------------------
指明当前类是一个配置类;就是来替代之前的Spring配置文件
@Configuration
使用@Bean给容器中添加组件
@Bean
-------------------------------------------------------
一 @Component
1.@Component注解是Spring框架自定义的一个注解
2.@Componnet注解修饰的类表示,这个类的对象需要由Spring框架负责生成实例对象
3.Spring容器启动时,自动扫描工程中所有由@Component修饰的类,并自动生成对应的
实例对象并保存到Spring容器中
ApplicationContext factory = new ClassPathXmlApplicationContext();//启动Spring
4.使用:
@Component("stu")
class Student{
}
//如果@Component没有指定对象名称,此时Spring容器以类名首字母小写的形式命名这个对象
@Component
class School{
}
spring容器.put("stu",new Student());
spring容器.put( "school", new School())
5.@Component注解起到作用,实际就是要求Spring容器为开发人员提供【控制反转】
功能上类似于<bean/>
二。组件扫描器:
1.在使用注解的方式与Spring容器沟通时,必须声明一个组件扫描器。
组件扫描器通知Spring容器到哪一个包下扫描拥有@Component的类
2.如果没有声明组件扫描器,则在Spring容器创建过程中不会定位关联
@Component的类
3.组件扫描器的声明需要在spring框架的核心配置文件来注册
<context:component-scan base-package="指定Spring容器需要扫描的类所在包"/>
三 @Value
1.作用:为对象中基本类型属性进行赋值
类似于XML标签中<property name="基本属性名" value="赋值内容"/>
2.使用:
@Value可以修饰在属性上方,此时这个属性不需要声明set方法
@Value可以修饰在set方法上方
3.注意:
@Value出现类必须使用@Componet进行修饰
三。@Autowaried:
1.作用: 为对象中高级引用类型进行自动赋值
类似于<bean autowire="byName/byType"/>
2.使用:
1)在默认情况下,@Autowired根据属性的类型名来定位赋值的对象
2)@Autowired也支持根据属性名来定位Spring容器中对象需要用@Qualifier("指定的名称")
四。@Resource
1.作用:
@Resource并不是Spring框架提供的注解。是JDK提供注解。
负责为对象中高级引用类型属性进行赋值
Spring框架开发时候建立对@Resource的支持
2.使用
1)@Resource默认情况下,根据属性名来向Spring容器索要同名的对象
2) @Resource如果没有在Spring容器中找到同名的对象时,此时要求
Spring容器提供与当前属性类型相同的对象
五。Spring容器中控制反转与依赖注入总结
一。控制反转与依赖注入
1. 控制反转: IOC,表示在Spring容器启动时,自动对指定的类创建实例对象
并保存到Spring容器中,在开发人员开发时则可以向Spring容器
讨要已经创建好的实例对象,这样避免开发人员创建实例对象
从而降低开发人员开发负担
2.依赖注入: DI。表示Spring容器启动时,自动为指定的类创建实例对象
在创建实例对象过程中为指定属性赋值指定内容
这样避免开发人员手动为对象中属性设置初始值,降低开发
负担
二。如何与Spring容器进行沟通
1.通过xml标签
1)控制反转: <bean></bean>
2)依赖注入:
<bean>
<property name="基本类型属性名" value="值"/>
<property name="高级引用类型属性名" ref="spring容器对象象名"/>
<bean>
<bean>
<constructor-args name="构造方法基本类型形参名" value="值"/>
<constructor-args name="构造方法高级类型形参数" ref="Spring容器中对象名"/>
</bean>
<bean autowire="byType"></bean>
<bean autowire="byName"></bean>
2.通过注解 :
1) 控制反转 @Componet <context:componenent-scan base-package="通知spring容器需要扫描的包"/>
2) 依赖注入:
@Value:针对基本类型属性进行赋值
@Autowred:针对高级引用类型的属性赋值。默认根据类型名
@Resource: JDK提供的注解,针对高级引用类型的属性赋值。默认根据属性名
@SpringBootApplication :标注这个类是一个springboot应用
@Mapper : 生成一个实现类,简化MyBatis代码
@Repository : 标识出数据库访问层的类
@Service : 定义到接口的实现类上
@AutoWired : 自动注入实例
@RestController : 不返回到页面,返回return里的内容,相当于@ResponseBody + @Controller
@Controller : 返回到页面

浙公网安备 33010602011771号