- Spring中IOC中的常用注解分类
注意:在Spring中使用注解,要在全局配置文件中告知Spring在创建容器时要扫描的包。配置所需要的标签不在Bean中,而是在context的命名空间和约束中
然后利用<context:component-scan base-package=""/> Spring会自动扫描该包及其子包下的所有注解
用注解必须先开启使用注解
(1)用于创建对象的
@Component(value="")
用于把当前类的对象注入到Spring中,写在类上方即可,value用于指定Bean的id,当我们不写时,默认是类名,并且第一个字母小写
衍生出来的注解:
@Controller 表现层
@Service 业务层
@Repository 持久层
这三个注解作用是和@Component这个一模一样的,不过这是Spring为我们提供明确的三层使用的注解,使我们的三层更加清晰
(2)用于注入数据的,
@Autowired
自动按照类型注入,只要容器中有唯一一个bean对象类型和和注入的变量类型匹配,就能注入成功
如果IOC中没有任何要匹配的bean要和注入的类型变量匹配,就不能注入成功,
如果存在多个bean对象和他匹配的话,也不能注入成功
使用位置:
用在变量上,也可以用在方法上
@Autowired
private AccountDao accountdao;
@Qualifier(value="")
在按照类中注入的基础上的再按照名称注入,他在给类成员注入时,不能单独使用只能和@Autowired一起使用
@Autowired
@Qualifier(value = “account1”)
private AccountDao accountdao;
@Resource
直接按照bean上的id注入,他可以单独使用
@Resource(name=“account2”)
private AccountDao accountdao;
@Autowired和@Qualifier和@Resource以上三个注解只能注入其他bean类型的数据,不能注入基本类型或者是String类型,另外集合类型的只能通过xml实现
@Value(value="")
用于注入基本类型或者是String类型,它可以使用String中的el表达式即${表达式}
(3)用于改变作用范围的
@Scope(value=""),常用取值, singleton(单例),prototype(多例)多例销毁对象Spring是不负责的,只负责单例
(4)和声明周期相关的(了解)
@PreDestory() 销毁方法,用在destory()方法之上
@Postconstruct() 初始化方法, 用在init()方法之上