Spring 注解开发
注解开发
1、原先 xml 配置文件管理 bean 的方式
1 | <bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/> |
其中包含三个信息点:
- 配置的是一个 bean
- 配置的 bean 设置类型
- 配置的 bean 起个名字
2、通过纯注解的方式管理 Bean
由于 bean 的类型是 class="com.itheima.dao.impl.BookDaoImpl"
,因此想到直接将注解写在这个类中 @Component("bookDao")
,那么以上信息中 “配置的 bean 设置类型” 和 “配置的 bean 起个名字” 就已经知道了,那么第一点 “配置的是一个 Bean” 如何去描述它呢?
1 |
|
在项目下新建一个 config 包,在包下新建一个 SpringConfig 的类;
- 在类上加上
@Configuration
注解表明是 Spring 配置类(代表 Spring 的 xml 配置文件框架) @ComponentScan
设置 bean 扫描路径
通过以上两点,就可以说明 “配置的是一个 Bean”,且告知了扫描路径。通过这样的方式完全可以取代原来的 xml 方式
1 | //声明当前类为Spring配置类(代表Spring的xml配置文件框架) |
那么原先在类中创建容器的那句代码也需要改一下
1 | //加载配置文件初始化容器 |
小结
- Java 类代替 Spring 核心配置文件
- @Configuration 注解用于设定当前类为配置类
- @ComponentScan 注解用于设定扫描路径,此注解只能添加一次,多个数据需要使用数组格式
附注信息
衍生注解
Spring 提供 @Component 注解的三个衍生注解,衍生的注解功能和 Component 注解一样,只是方便我们区分
- @Controller:用于表现层 bean 定义
- @Service:用于业务层 bean 定义
- @Repository:用于数据层 bean 定义
包扫描若有多个路径
如果有多个路径,需要使用字符串数组格式,如:
1 | {"com.itheima.service","com.itheima.dao"} |