首先在介绍我们Spring框架中的常用注解前,我们先来回顾一下曾经在Xml的配置文件中的配置内容:
<bean id="accountService" class="com.ysw.web.service.impl.AccountServiceImpl"
scope="" init-method="" destory-method="">
<!--通过set方法进行依赖注入的-->
<property name="" value=""></property>
</bean>
为了方便开发者开发,在Spring的注解中将这部分的bean.xml配置内容,主要区分为以下四个点的板块:
1、用于创建对象的:
作用就和在xml配置文件中使用<bean></bean>标签实现的功能一样。
常用注解关键字:
@Component
作用:把当前类对象存入Spring-IoC核心容器
属性:value,用于指定当前类对象bean的唯一id,当我们不写的时候,默认使用的是当前类名首字母小写
用法:@Component(value=" ")或者@Component(" ")
Spring框架为了用户开发方便,特意设定了三层架构的创建对象关键字:@Controller、@Service、@Repository
以上三个注解他们的作用和属性都是一样的,使我们MVC三层对象更为清晰
2、用于注入数据的:
作用就和我们在<bean></bean>标签中使用set的方式进行注入,使用标签<property></property>的方式是一样的。
出现的位置:可以是成员变量上,也可以是方法上
常用注解关键字 :
@Autowired,作用是自动按类型进行注入操作
自动注入原理:只要Spring-IoC容器中有一个bean对象与要注入的类型匹配的话,就能够注入成功。具体来讲,@Autowired主要是首先是要匹配注入接口对象的,倘若要注入的接口对象唯一并且匹对的话,就会首先直接按接口类型进行注入。倘若注入的接口类型唯一,但是具体的实现类不唯一的话(也就是同一个接口下有两个实现类),这种情况我们就需要通过指定变量名的方式,通过id来确定具体的哪一个bean对象。如下所示,accountDao1对应id为accountDao1的bean,2对应的是2的bean。
@Autowired
private IAccountDao accountDao1;
@Autowired
private IAccountDao accountDao2;
@Qualifier,这个必须要和Autowired结合使用
作用:按照在类中注入的基础上,再按照名称的方式进行注入,在给类成员注入的时候不能单独使用,但是给方法参数注入时可以。
属性:value,主要是用于指定id
@Resource
作用:直接按照bean的id进行独立使用。
属性:name,直接通过id进行注入
PS:以上三种注入都只能注入其他bean类型的数据,基本类型和String类型无法使用上述注解实现另外,集合类型的注入只能通过xml来实现。
3、用于改变作用范围的:
这部分就跟在xml配置文件中使用scope属性实现的功能是一致的。
注解关键字:
@Scope
作用:主要是用于指定bean的作用范围
属性:value,指定取值范围,常用取值singleton(单例)、prototype(多例)
4、用于改变生命周期的(了解即可):
这部分就跟在xml配置文件中使用init-method、destory-method属性实现的功能是一样的。
注解关键字:
@PreDestory,用于指定销毁的方法
@PostConstruct,用于指定初始化方法