1. 基于注解的IOC配置
1.1 写在最前
学习基于注解的IoC配置,大家脑海里首先得有一个认知,即注解配置和xml配置要实现的功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样。
关于实际的开发中到底使用xml还是注解,每家公司有着不同的使用习惯。所以这两种配置方式我们都需要掌握。
1.2 环境搭建
1.2.1 拷贝必备jar包
注意:在基于xml的配置中,多拷贝一个aop的jar包。如下图:
1.2.2 在类的根路径下创建任意名称的xml文件
1 |
|
1.2.3 使用@Component注解配置管理的资源
1 | /** |
1.2.4 在Spring的配置文件中开启Spring对注解ioc的支持
1 |
|
1.3 常用注解
1.3.1 用于创建bean对象
1 | 相当于:<bean id="" class=""> |
1.3.2 用于注入数据的
1 | 相当于:<property name="" ref=""> |
1.3.3 用于改变作用范围的
1 | 相当于:<bean id="" class="" scope=""> |
1.3.4 和生命周期相关的
1 | 相当于:<bean id="" class="" init-method="" destroy-method="" /> |
1.3.5 代码示例
持久层
1 | /** |
持久层
1 | /** |
1.3.6 关于Spring注解和XML的选择问题
1 | 注解的优势: |
Spring管理Bean方式的比较:
1.4 Spring的纯注解配置
1.4.1 待改造的问题
我们发现,之所以我们现在离不开xml配置文件,是因为我们有一句很关键的配置:
1 | <!-- 告知spring在创建容器时要扫描的包。当配置了此标签之后,spring创建容器就会去指定的包及其子包下找对应的注解 |
如果他要也能用注解配置,那么我们就可以脱离xml文件了。
1.4.2 使用注解配置要扫描的包
创建配置类:
1 | /** |
测试类获取容器:
1 | public static void main(String[] args) { |
1.4.3 新注解说明
1.4.3.1 @Configuration
1 | @Configuration |
1.4.3.2 @ComponentScan
1 | @ComponentScan |
1.4.3.3 @PropertySource
1 | @PropertySource |
1.4.3.4 @Import
1 | @Import |
1.4.3.5 @Bean
1 | @Bean |
1.4.3.6 代码示例
jdbcConfig.properties:
1 | com.mysql.jdbc.Driver = |
Jdbc的配置类:
1 | /** |
配置类:
1 | /** |
2. Spring整合Junit
2.1 准备测试环境
2.1.1 创建业务层接口实现类
1 | /** |
1 | /** |
2.1.2 创建持久层接口实现类
1 | /** |
1 | /** |
2.1.3 导入junit的jar包
2.1.4 编写测试类
1 | /** |
2.2 使用xml配置步骤
2.2.1 xml文件中的配置
1 |
|
2.2.2 拷贝整合junit的必备jar包
2.2.3 使用@RunWith注解替换原有运行器
1 | .class) (SpringJUnit4ClassRunner |
2.2.4 使用@ContextConfiguration指定spring配置文件的位置
1 | .class) (SpringJUnit4ClassRunner |
2.2.5 使用@Autowired给测试类中的变量注入数据
1 | .class) (SpringJUnit4ClassRunner |
2.3 使用纯注解配置步骤
2.3.1 拷贝整合junit的必备jar
2.3.2 把资源都用注解管理
1 | /** |
1 | /** |
2.3.3 使用注解配置方式创建Spring容器
1 |
|
2.3.4 使用RunWith注解和ContextConfiguration注解配置
1 | .class) (SpringJUnit4ClassRunner |
2.4 为什么不把测试类配到xml中
- 当我们在xml中配置了一个bean,Spring加载配置文件创建容器时,就会创建对象。
- 测试类只是我们在测试功能时使用,而在项目中它并不参与程序逻辑,也不会解决需求上的问题,所以创建完了,并没有使用。那么存在容器中就会造成资源的浪费。
-------------本文结束感谢您的阅读-------------
本文作者:
Wgy
本文标题: Spring(二)
本文链接: https://wgy1993.gitee.io/archives/16fa518f.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
本文标题: Spring(二)
本文链接: https://wgy1993.gitee.io/archives/16fa518f.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
