第一个注解:@Component("student")
当他贴在类上后,就表示这个类已经交给spring管理了,他后面的值相当于用xml配置时候bean里面的id
这个注解为了更好了分层三层架构,衍生出了三个不同名称的注解,但是功能基本是一样的
- @Controller("student") :用在wen层
- @Service("") :用在service层
- @Repository("") :用在dao层
第二个注解:@Value("")
贴在普通属性上,直接给普通属性注入值,当存在set方法的时候,就贴在set方法的上面
@Value("23")
public void setAge(String age) {
this.age = age;
}
第三个注解:@Autowired
贴在对象属性上面,spring可以根据对象类型自动将这个对象类型注入属性中,前提是,这个对象属性所属的类也交给了spring管理,也就是贴上了介绍的的第一种标签的其中一个
@Autowired
private Dog dog;
第四个注解:@Qualifier("dog")
同样贴在对象属性上面,作用为对象属性注入,但是只有这个标签还是无法注入,所以应该和@Autowired一起使用
@Autowired
@Qualifier("dog")
private Dog dog;
第五个注解:@Resource(name = "")
相当于是@Autowired和@Qualifier("")功能的结合体,用的时候要写上注入对象的注解名称,让开发更加清晰
@Resource(name = "dog")
private Dog dog;
第六个注解:@PostConstruct
贴在方法上,作用为对象初始化的时候执行的方法
第七个注解:@PreDestroy
同样贴在方法上,作用为对象销毁的时候执行的方法
第八个注解:@Scope("singleton")
@Scope("protopyte")这是多例模式,上面是单例,默认也是单例
贴在类上的注解,表示这个类的作用范围,是单例还是多例,和xml配置的时候bean种的scope属性的作用一样