spring annotation
原文:http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-iocannt/index.html?ca=drs-tp4608
1.通过给类添加annotation,从而不用再在spring的配置文件中进行配制。
而为了spring能够识别这个类,需要让spring进行扫描,发现有注释的类,进行配置,因此要在spring的配制文件中加入语句
<context:component-scan base-package="com.test" />
spring会自动扫描base-package及其子文件夹下的所有类
2. @Repository 标注Dao 类,除了表示是bean外,同时可将抛出的数据异常封闭为spring提供的数据异常
@Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。
@Service 通常作用在业务层,但是目前该功能与 @Component 相同。
@Constroller 通常作用在控制层,但是目前该功能与 @Component 相同。
使用方法:在类上方标记,如
@Repository
public class UserDaoImpl implements UserDao{ …… }
3. spring扫描到这些注释的时候会自动生成BeanDefinition,自动注册到ConfigurationContext中。
如果标注中有name属性,会以name属性命名,否则会自动生成。
4. bean的自动装配
在spring配置文件上加 <context:annotation-config/>
方法一:@autowired
表示按类型自动匹配,在属性的setter,字段前。如果存在多个满足条件的bean,可以在autowired,class前加一个@qualifed的注解,那么它会寻找bean名字相同的bean.
方法二:@Resource
表示按名字匹配,如果没有,再按类型匹配