Spring中注解的使用
1)依赖注入:标注在字段或属性的setter方法上
1)@Autowired 根据类型查找
2)@Autowired + @Qualifier(xxServiceImpl) 根据名字(id)查找
3)@Resource 按名称查找,当找不到与名称匹配的bean时再按类型查找
说明:
1>@Resource注解是JSR-250标准注解,不是spring提供的。
2>在注入时,使用@Resource注解比@Autowired + @Qualifier注解快一些。
2)类扫描
@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
@Controller 用于标注控制层组件(如struts中的action)
@Repository 用于标注数据访问组件,即DAO组件
@Service 用于标注业务层组件
3)其他注解:
@PostConstruct 指定Bean的初始化方法
@PreDestroy 指定Bean的销毁方法
说明:@Autowired 注解用在集合(集合元素类型为T)上,可以将容器中T的所有实现类都添加到该集合中。
举例:
例子1:
// 将容器中ICar的所有实现类都添加到carList中
@Autowired
private List<ICar> carList;
例子2:
// 将容器中A的所有实现类都添加到aList中,将容器中B的所有实现类都添加到bList中。
@Autowired
public void init(List<A> aList, List<B> bList) {
// do somethings
}
使用@Resource注解需要在配置文件中进行以下配置:
1)导入命名空间
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
2)添加支持注解的配置:<context:annotation-config></context:annotation-config>
注:这个配置隐式注册了多个对注释进行解析处理的处理器
或
<context:component-scan base-package="com.jxn.oa"></context:component-scan>
注:该配置有两个功能:
1)依赖注入:支持注解的方式进行注入
2)扫描类:在base-package包及子包下查找所有的类
xml与注解的比较:
1、xml书写麻烦,但是效率高
2、注解书写简单,但是效率低