Spring 的常用注释

来源:互联网 发布:淘宝怎么举报假冒商品 编辑:程序博客网 时间:2024/05/21 22:52

为了减少开发中配置的工作,增强程序的内聚性,提高开发的效率,Spring 支持使用 Annotation 来代替 XML 配置文件。

1、搜索 Bean 类

Spring 通过使用一些特殊的 Annotation 来标注 Bean 类,然后通过简单的配置驱动 Spring 自动搜索某些路径下的 Java 类,并将这些 Java 类注册成 Bean 实例。

Spring 提供的几个 Annotation 来标注 Spring Bean:
@Component:标注普通的 Spring Bean 类。
@Controller:标注控制器组件类。
@Service:标注业务逻辑组件类。
@Repository:标注 DAO 组件类。

Spring 配置文件中指定自动搜索路径

<!-- 自动扫描指定的包及其子包下的所有 Bean 类 --><context:component-scan base-package="com.sunsharing.springDemo" >    <!-- 配置哪些的 Bean 不会被 Spring 容器管理 -->    <context:exclude-filter type="regex" expression=".*bb"/></context:component-scan>

在基于 XML 配置方式下,每个 Bean 实例的名称都来由其 id 来指定,在基于 Annotation 的方式下, Spring 的 Bean 实例名称默认是 Bean 类的首字母小写,其他不变,也可使用 @Component 标注指定 Bean 实例的名称:

/** * Created by Hinbo on 2016/9/8. * 测试 Spring 的注解 */@Component("aaa")      //默认为 american,该处指定为 aaapublic class American implements Person {    private Axe axe;    public American(){        System.out.println("Spring 实例化。。。。。。");    }    public void userAxe() {        System.out.println("American ......");    }}

<context:exclude-filter type="" expression=""/>: 指定满足该规则的不会被 Spring 容器所管理,type 指定过滤器类型,expression 指定过滤器的表达式。

<context:include-filter type="" expression="" />: 指定满足该规则的会被 Spring 容器管理。

2、指定 Bean 的作用域

Spring 可以通过 @Scope 注解来指定 Bean 实例的作用域,没有指定默认为 singleton 。

3、使用 @Resource 配置依赖

Spring 通过使用 @Resource 来为目标 Bean 指定协作者的 Bean ,该注解有一个 name 属性,值为被注入的 Bean 实例的 id 。

@Resource(name = "steelAxe")public void setAxe(Axe axe) {    this.axe = axe;}

上述代码将容器中的 steelAxe 的 Bean 实例注入到 axe 中,达到与

4、使用 @PostConstruct 和 @PreDestroy 定制生命周期行为

@PostConstructpublic void init(){    System.out.println("American init ......");}@PreDestroypublic void close(){    System.out.println("American close ......");}

使用 @PostConstruct 修饰 init() 方法,让 Spring 在该 Bean 的依赖关系注入完成之后回调方法,使用 @PreDestroy 修饰 close() 方法,让 Spring 在销毁 Bean 之前回调该方法,这与

5、@DependsOn 注解和 @Lazy 注解

@DependsOn: 可以修饰 Bean 类或方法,用于强制初始化其他的 Bean。
@Lazy: 修饰 Spring Bean 类用于指定该 Bean 的初始化行为,可指定 boolean 型的 value 属性,决定是否要预初始化该 Bean 。

6、@Autowired 自动装配

@Autowired 可以对类成员变量、方法及构造甘薯进行标注,完成自动装配的工作,消除get, set 方法,实现精简程序的目的。

@Autowiredprivate Axe steelAxe;

使用 @Autowired 进行自动装配,Spring 会自动搜索容器中与该类型相匹配的 Bean 实例,并将其设置为该变量的值。

0 0
原创粉丝点击