总结分享 | Spring纯注解开发
纯注解开发模式介绍
Spring纯注解开发模式,使用Java类替代配置文件,开启了Spring快速开发赛道;
注解开发定义配置类
1.1 定义配置类代替配置文件
- @Configuration注解用于设定当前类为配置类
- @ComponentScan注解用于设定扫描路径,多个数据用数组格式
代码演示
1.2 在测试类中加载配置类
注解开发定义Bean
2.1 定义Bean对象
@Component 注解的三个衍生注解
@Controller:用于表现层bean定义
@Service:用于业务层bean定义
@Repository:用于数据层bean定义
2.2 Bean作用范围管理
@Scope(" "):定义bean作用范围
@PostConstruct、@PreDestroy:定义bean生命周期
注解开发依赖注入
自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法。
不管是使用配置文件还是配置类,都必须进行对应的Spring注解包扫描才可以使用。
3.1 自动装配模式
@Autowired默认按照类型自动装配,如果IOC容器中同类的Bean有多个,那么默认按照变量名和Bean的名称匹配
3.2 指定要装配的bean名称
解决IOC容器中同类型Bean有多个,装配哪一个的问题
用@Qualifier注解指定要装配的bean名称,必须配合@Autowired注解使用
3.3 使用@Value实现简单类型注入
@Value:注入简单类型(无需提供set方法)
注意:使用@Value("${El表达式}") 注入,需要在配置类中加载属性文件
注解开发管理第三方Bean
4.1 自定义配置类
@Bean:表示当前方法的返回值是一个bean对象,添加到IOC容器中
public class DataSourceConfig {
@Bean
public DataSource dataSource(){
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/test_db??characterEncoding=utf8&serverTimezone=UTC");
ds.setUsername("root");
ds.setPassword("root");
return ds;
}
}
4.2 将自定义配置类加入核心配置
【方式一】
使用@Import注解导入配置信息
【方式二】
使用@ComponentScan注解扫描