Spring注解入门
1. 使用spring注解来注入属性
<br>1.1. 使用注解以前是怎样注入属性的?<br>????????类的实现:
?1.2. 引入@autowired注解(不推荐使用,建议使用@resource)?<br>????????类的实现(对成员变量进行标注)????? @autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。以上两种不同实现方式中,@autowired的标注位置不同,它们都会在spring在初始化usermanagerimpl这个bean时,自动装配userdao这个属性,区别是:第一种实现中,spring会直接将userdao类型的唯一一个bean赋值给userdao这个成员变量;第二种实现中,spring会调用setuserdao方法来将userdao类型的唯一一个bean装配到userdao这个属性。 <br><br>1.3. 让@autowired工作起来 <br>要使@autowired能够工作,还需要在配置文件中加入以下代码?1.4. @qualifier <br>@autowired是根据类型进行自动装配的。在上面的例子中,如果当spring上下文中存在不止一个userdao类型的bean时,就会抛出beancreationexception异常;如果spring上下文中不存在userdao类型的bean,也会抛出beancreationexception异常。我们可以使用@qualifier配合@autowired来解决这些问题。 <br>1. 可能存在多个userdao实例??<context:annotationconfig />将隐式地向spring容器注册autowiredannotationbeanpostprocessor、commonannotationbeanpostprocessor、 persistenceannotationbeanpostprocessor以及requiredannotationbeanpostprocessor这4个beanpostprocessor。 <br><br>2. 使用spring注解完成bean的定义 <br>???? 以上我们介绍了通过@autowired或@resource来实现在bean中自动注入的功能,下面我们将介绍如何注解bean,从而从xml配置文件中完全移除bean定义的配置。 <br>2.1. @component(不推荐使用)、@repository、@service、@controller?<br>???????只需要在对应的类上加上一个@component注解,就将该类定义为一个bean了:??? ?这里,所有通过<bean>元素定义bean的配置内容已经被移除,仅需要添加一行<context:component-scan />配置就解决所有问题了——spring xml配置文件得到了极致的简化(当然配置元数据还是需要的,只不过以注释形式存在罢了)。<context:component-scan />的base-package属性指定了需要扫描的类包,类包及其递归子包中所有的类都会被处理。 <br><context:component-scan />还允许定义过滤器将基包下的某些类纳入或排除。spring支持以下4种类型的过滤方式:
过滤器类型 表达式范例 说明 注解 org.example.someannotation 将所有使用someannotation注解的类过滤出来 类名指定 org.example.someclass 过滤指定的类 正则表达式 com\.kedacom\.spring\.annotation\.web\..* 通过正则表达式过滤一些类 ??