annotation注解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Spring 3.x 全注解配置的简介与内容

web.xml

org.springframework.web.util.Log4jConfigListener

org.springframework.web.context.ContextLoaderListener

org.springframework.web.context.request.RequestContextListener

log4jConfigLocation

/WEB-INF/log4j.properties

contextConfigLocation

/WEB-INF/applicationContext.xml

applicationContext.xml

xmlns:xsi="/2001/XMLSchema-instance"

xmlns:aop="/schema/aop"

xmlns:tx="/schema/tx"

xmlns:context="/schema/context"

xsi:schemaLocation="

/schema/beans

/schema/beans/spring-beans-3.0.xsd

/schema/aop

/schema/aop/spring-aop-3.0.xsd

/schema/tx

/schema/tx/spring-tx-3.0.xsd

/schema/context

/schema/context/spring-context-3.0.xsd"

default-autowire="byName">

。。。。

代码中

/* JSR-250标准的注解*/

@Repository // DAO 类级别

@Service // service服务层类级别

@Component // 适用不是以上两种的类类级别

@Controlle // web层控制器类级别

@Resource // 注入的对象类属性级别

它有name参数,缺省时,Spring 将这个值解释为要注射的bean 的名字。即遵循by-name 的语法,将继承于字段名或者setter 方法名:如果是字段名,它将简化或者等价于字段名;如果是setter 方法名,它将等价于bean 属性名

@Scope("singleton") // 或prototype 类级别

@PostConstruct

@PreDestroy

当一个方法带有这些注解之一时,将被在其生命周期与Spring 生命周期接口的方法或者显式声明回调方法同一刻上调用。下面的例子里,缓存将预置于初始化与销毁阶段。

public class CachingMovieLister {

@PostConstruct

public void populateMovieCache() {

// populates the movie cache upon initialization...

}

@PreDestroy

public void clearMovieCache() {

// clears the movie cache upon destruction...

}

}

[分享]Spring注释和简化配置简单介绍

2010-02-26 10:16

可以说,在Java开发中离不开Spring。在Spring 2.5及以后的版本中,提供了注释和命名空间来简化Spring的配置。

本文就在实际应用中,把最常用的注释和配置做个简单的整理和介绍,也就是本人使用最多的一些功能,其他更高级的功能可以参考Spring官方文档(/documentation)或是通过Google一下。

一、@Autowired注释

以前给一个Bean配置属性时,Bean必须配置,然后在Java文件,还必须增加属性propname的getter和setter方法。

有了@Autowired注释后,我们可以简化配置文件和getters和setters方法。

1、注释属性

@Autowired

private BeanClassName propName;

当然,我们还必须告诉Spring容器,当它启动时,就去扫描所有的Bean,然后自动注入。

class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> 我们也可以注释构造函数和方法。

2、注释构造函数

@Autowired

public MainBean(PropBeanA propBeanA, PropBeanB propBeanB){

this.propBeanA = propBeanA;

this.PropBeanB = PropBeanB ;

}

3、注释方法

@Autowired

public void setPropBean(PropBean propBean) {

this.propBean = propBean;

}

4、@Autowired的相关属性

在默认情况下使用@Autowired注释进行自动注入时,Spring容器中匹配的候选Bean数目必须有且仅有一个。当Springp容器找不到一个匹配的Bean时(可能是没有配置该Bean或是Bean的属性名写错了),Spring容器将抛出BeanCreationException异常,并指出必须至少拥有一个匹配的Bean。

(1)当Bean是可选的,或是不能确定Bean一定有,可以用@Autowired(required = false),这样在找不到匹配Bean 时也不报错,该属性默认为true。

(2)与上面的相反,当Bean有多个时,我们可以通过@Qualifier("beanId")还唯一确定一个所引用的Bean,与@Autowired配合使用,它也有三种使用的地方。

二、@Component注释

虽然我们可以通过@Autowired在Bean类中使用自动注入功能,但是Bean还是在XML文件中通过进行定义的,通过@Component注释可以实现无需在配置文件中配置Bean 的目的。

import ponent;

@Component

public class BeanClassNameA {

相关文档
最新文档