注解开发
注解开发定义bean
- 使用@Component定义bean
- 核心配置文件中通过组件扫描加载bean
- Spring提供@Component注解的三个衍生注解
- @Controller:用于表现层bean定义
- @Service:用于业务层bean定义
- @Repository:用于数据层bean定义
纯注解开发
-
Spring3.0升级了纯注解开发模式,使用Java类代替配置文件,开启了Spring快速开发赛道
-
Java类代替Spring核心配置文件
-
@Configuration注解用于设定当前类为配置类
-
@ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式
-
读取Spring核心配置文件初始化容器对象切换为读取Java配置类初始化容器对象
小结
注解开发bean作用范围与生命周期管理(bean管理)
bean作用范围
-
使用@Scope定义bean的作用范围
-
使用@PostConstruct、@PreDestroy定义bean生命周期
注解开发依赖注入(自动装配)
-
使用@Autowired注解开启自动装配模式(按类型)
-
注意:自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法
-
注意:自动装配建议使用无参构造方法创建对象(默认),如果不提供对应构造方法,请提供唯一的构造方法
-
使用@Qualifier注解开启指定名称装配bean
-
注意:@Qualifier注解无法单独使用,必须配合@Autowired注解使用
-
使用@Value实现简单类型注入
加载properties文件
- 使用@PropertySource注解加载properties文件
- 注意:路径仅支持单一文件配置,多文件请使用数组格式配置,不允许使用通配符*
第三方bean管理
第三方bean管理
-
使用@Bean配置第三方bean
-
使用独立的配置类管理第三方bean
-
将独立的配置类加入核心配置
-
方式一:导入式
-
使用@Import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据请用数组格式
-
方式二:扫描式
-
使用@ComponentScan注解扫描配置类所在的包,加载对应的配置类信息
第三方bean依赖注入
-
简单类型依赖注入
-
引用类型依赖注入
-
引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动装配对象