依赖注入注解形式
2019-12-30 本文已影响0人
充满智慧的白痴
开始注解模式
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config/>
<!-- bean definitions go here -->
</beans>
@Required
> @Required:应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中
// 自动寻找和该属性类型相同的id的bean
> @Autowired:Spring遇到一个在 setter 方法中使用的 @Autowired 注释,它会在方法中视图执行 byType 自动连接。
属性上面的@Autowired,可以不写setter方法,自动装配和属性名相同id的bean
setter方法上面的@Autowired , 自动装配和属性名
构造方法上面的@Autowired,自动装配和参数名相同id的bean
@Autowired 的(required=false) 自动装配不必须
@Qualifier
当定义多个相同类型的bean时,@Qualifer用于指定装配哪一个
@Autowired
@Qualifier("student1") // 装配student1到当前类的student属性中
private Student student;
使用注解指定生命周期函数
@PostConstruct
public void init(){
System.out.println("Bean is going through init.");
}
@PreDestroy
public void destroy(){
System.out.println("Bean will destroy now.");
}
@Resource jsr-250
在字段中或者 setter 方法中使用 @Resource 注释,它的name属性就是注入该属性的bean的id
如果没有明确地指定一个 ‘name’,默认名称源于字段名
@Resource(name= "spellChecker")
public void setSpellChecker( SpellChecker spellChecker ){
this.spellChecker = spellChecker;
}