Spring原始注解
Spring原始注解主要是替代<Bean>的配置
注解 | 说明 |
---|---|
@Component | 使用在类上用于实例化Bean |
@Controller | 使用在web层类上用于实例化Bean |
@Service | 使用在service层类上用于实例化Bean |
@Repository | 使用在dao层类上用于实例化Bean |
@Autowired | 使用在字段上用于根据类型依赖注入 |
@Qualifier | 结合@Autowried一起使用于根据名称进行依赖注入 |
@Resource | 相当于@Autowried+@Qualifier,按照名称进行注入 |
@Value | 注入普通属性 |
@Scope | 标注Bean的作用范围 |
@PostConstruct | 使用在方法上标注该方法是Bean的初始化方法 |
@PreDestroy | 使用在方法上标注该方法是Bean的销毁方法 |
注意:
使用注解进行开发时,需要在applicationContext.xml中配置组件扫描,作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类、字段和方法。
1 | <!-- 注解的组件扫描 --> |
Spring新注解
使用上面的Spring原始注解还不能完全替代xml文件,还需要使用注解替代的配置如下:
- 非自定义的Bean的配置:<bean>
- 加载properties文件的配置:<context:property-placeholder>
- 组件扫描的配置:<context:component-scan>
- 引入其他文件:<import>
注解 | 说明 |
---|---|
@Configuartion | 用于指定当前类是一个Spring配置类,当创建容器时会从该类上加载注解 |
@ComponentScan | 用于指定Spring在初始化容器时要扫描的包 作用和在Spring的xml配置文件中的<context:component-scan base-package=”com.heng”/>一样 |
@Bean | 使用在方法上,标注将该方法的返回值存储到Spring容器中 |
@PropertySource | 用于加载.properties文件中的配置 |
@Import | 用于导入其他配置类 |
Spring集成Junit
原始Junit测试Spring的问题
在测试类中,每个测试方法都有一下两行代码:
1 | ApplocationContext app = new ClassPathXmlApplicationContext("bean.xml"); |
这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能轻易删掉。
解决办法:
- 让SpringJunit负责创建Spring容器,但是需要将配置文件的名称告诉它。
- 将需要进行测试Bean直接在测试类中进行注入。
Spring继承Junit步骤:
①:导入Spring继承Junit的坐标。
②:使用@Runwith注解替换原来的运行期。
③:使用@ContextConfiguration指定配置文件或配置类。
④:使用@Autowired注入需要测试的对象。
⑤:创建测试方法进行测试。