本文共 1405 字,大约阅读时间需要 4 分钟。
Spring框架为Spring Bean的配置提供了多种方式,常见的有通过XML文件的配置,通过标注(Annotation)的配置和基于Java的容器配置。其中基于Java的容器配置往往见于独立运行的Java应用,对于Web应用常见的是XML文件的配置和标注(Annotation)配置。
这里重点介绍Web应用的标注(Annotation)配置。
1. Spring Bean的标注(Annotation)配置
在Spring框架的默认XML配置文件中,通过<context:annotation-config/>可以实现对标注配置的注册。这样Spring框架启动的时候就会首先检查Spring Bean的标注(Annotation)配置。
常见的Spring Bean的标注(Annotation):
@Required,作用于属性的setter方法@Autowired,作用于构造函数、属性和各种方法(可以被JSR-330的@Inject替代)@Primary,在有多个Bean适合被自动绑定时,给出优先选择的@Qualifier("..."),在有多个Bean适合被自动绑定时,选择特定名称的@Component("beanName"),Spring管理的通用组件@Controller("beanName"),@Component的特例,用于控制器功能的Java类@Service("beanName"),@Component的特例,用于通用功能的Java类@Repository("beanName"),@Component的特例,用于库的Bean(如DAO)JSR-250的@Resource(name="..."),通过特定名称选择Bean,优先使用该标注,作用于属性的setter方法JSR-250的@PostConstruct,作用于方法JSR-250的@PreDestroy,作用于方法注意:Spring框架启动时,首先采用标注的配置,然后再采用XML文件的配置并覆盖标注的配置,即XML文件配置优先。2. 扫描classpath查找适合被注入的Spring Bean在Spring框架的默认XML配置文件中,通过<context:component-scan base-package="..."/>实现扫描指定包中Java类的标注(Annotation)配置。注意:配置<context:component-scan base-package="..."/>,隐含配置了<context:annotation-config/>3. JSR-330 Dependency Injection for Java的标准标注(Spring 3.0开始支持)实现类位于javax.inject包@javax.inject.Inject,类似于Spring的@Autowired@javax.inject.Named,类似于Spring的@Component@Singleton,类似于Spring的@Scope("singleton")@javax.inject.Qualifier,类似于Spring的@Qualifierjavax.inject.Provider,类似于Spring的ObjectFactory类(注意,这是个Java类,不是标注)转载地址:http://lclai.baihongyu.com/