1、配置类注解
@Configuration -> 标注当前类是配置类,替代application.xml
@PropertySource("classpath:application.properties") -> 使用注解读取外部配置,替代 <context:property-placeholder标签
@ComponentScan(basePackages = {"com.suchuanlin.components"}) -> 使用@ComponentScan注解,可以配置扫描包,替代<context:component-scan标签
@Bean -> 用在方法上
@Import -> 注释允许从另一个配置类加载 `@Bean` 定义
2、IoC注解
@Component("名称"):普通组件
@Repository("名称"):Dao层
@Service("名称"):Service层
@Controller("名称"):Controller层
3、DI注解
@Autowired:可作用在成员变量(主要使用方式),构造器,setXxx()方法
@Qualifier:指定装配组件名称
@Resource:等同于@Autowired + @Qualifier
@Value:注入外部属性
4、周期方法注解
@PostConstruct:注解制指定初始化方法
@PreDestroy:注解指定销毁方法
5、作用域配置注解
@Scope(scopeName = ConfigurableBeanFactory.SCOPE_SINGLETON) //单例,默认值
@Scope(scopeName = ConfigurableBeanFactory.SCOPE_PROTOTYPE) //多例 二选一
6、整合测试注解
@SpringJUnitConfig(locations = {"classpath:spring-context.xml"}) //指定配置文件xml
@SpringJUnitConfig(value = {BeanConfig.class}) //指定配置类
@Import案例
1.已知有一个配置类B
package com.suchuanlin.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JavaConfigurationB {
}
2.在另一个配置类A中导入配置类B
ackage com.suchuanlin.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Import(value = {JavaConfigurationB.class})
@Configuration
public class JavaConfigurationA {
}