##作用和编写一个bean标签实现的功能一致
* @Component:用于把当前类对象存入Spring容器中
属性:
value:指定bean的id 不写时默认值为当前类名首字母改小写
* @Controller 表现层
* @Service 业务层
* @Respository 持久层
##以上三个注解他们的作用和属性与Component是一模一样的,他们三个是spring为我提供明确的三层使用的注解 使三层对象更加清晰
## 作用和xml配置文件中bean标签中写一个property标签作用一致
* @Autowired:作用:自动按照类型注入,只要容器中有唯一的一个bean对象类型和注入的变量类型匹配,就可以注入成功
属性:value 用于指定注入bean的id
位置:可以在方法上 也可以在变量上
set就不再是必须的
## 如果没一个bean和要注入的bean匹配则报错
## 如果有多个匹配 按照类型 圈定出匹配类型 找名称一致的 找到则成功 找不到则报错
* @Qualifier:作用:在按照类中注入的基础上再按照名称注入。他给类成员注入时不能单独使用,要配合Autowired在给方法参数注入时 可以
属性:value 用于指定注入bean的id
* @Resource:作用:直接按照bean的id注入。可以单独使用
属性:name:用于指定bean的id
## 以上三个注入都只能注入其他bean类型的数据,而基本类型和String类型无法使用上述注解实现
* 另外 集合类型的注入只能使用xml实现
* @Value:作用:用于注入基本类型 和 String类型的数据
属性 value:用于指定数据的值 可以使用spring中spEL el表达式 ${表达式}
* @scope
属性 value:用于指定范围的取值 singleton prototype
* 了解:
@PreDestroy:指定销毁方法
@PostConstruct:指定初始化方法
//配置类 类似于 bean.xml
/*
value:他和basePackages一样 ,用于指定spring在创建容器时要扫描的包,使用此注解就等同于在xml配置了
当配置类作为AnnotationConfigApplicationContext对象创建的参数时 该注解可以不写
name:用于指定bean的id,默认值是 当前方法的名称
当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象
查找的方式和Autowired注解的作用是一样的
原文:https://www.cnblogs.com/zishang/p/12344271.html