spring之注解(一)概述

Spring的核心是依赖注入(DI),而依赖注入的基础是依赖信息的配置,这些配置称之为元数据。在之前的的学习中,一直采用的是基于xml的配置,这些元数据配置在spring内部被注册成为BeanDefinition,spring以此为模版创建bean和注入依赖。

从spring 2.0开始,spring依次加入了对注解型元数据配置的支持。自此我们有了另外一种配置bean的方式。Spring包含很多种注解,如我们比较熟悉的@AutoWired、@Compoent,还有一些不太熟悉的如@Inject @Improt等。

分类

Spring包含了如此多的注解,致使初学者对之望而生畏,对其中一些也比较模糊。因此可以对Spring的注解进行分类。Spring的xml元数据配置的核心是bean定义、属性及其依赖的配置,因此也可以从这个角度对spring注解进行分为以下,首先见下图:

本篇先对这些注解做一下简单的梳理,然后在后续的文章中,针对后三种做较为详细的说明。

类别概述

下面稍微详细的进行说明下各个类别,并列举出大部分Spring支持的注解。

容器级别

容器级别指的是注解用来配置Spring容器的,对应于SpringXML配置文件,如

@Configuration作用在class上,其内可以定义很多Bean

@Import引入其他Configuration

@ComponentScan 自动扫描Bean组件配置,和Configuration配合使用

Bean级别

Bean级别指的是被注解标记的对象(类或者方法),,会向Spring容器注册一个BeanDefinition,Spring以此创建Bean实例。

@component 它和其他被其注解的注解 如@Service等作用于一个class上, 可以定义一个bean

@Named 和以上类似,来自JSR-330

@Bean 和@Configuration 或者@component 配合使用

Bean属性级别

此类别指的是作用于bean的属性,如是否延迟加载,Scope等,

@Qualifier 常和@autowired

@Lazy 延迟加载

@Scope 定义bean的Scope

@Required 可以标注在Set方法上,说明此方法需要被执行,否则跑出异常,长和@autowired 配合使用

@PostConstruct and@PreDestroy 来自于JSR,作用于生命周期

依赖级别

Spring可以使用这些注解进行依赖注入,通常是自动的,或者借助一些辅助信息。

@autowired自动依赖注入,有几种方式,byType,byName等,通常和@ Qualifier配合使用

@Inject 来自JSR-330,和以上类似,JSR-330相关注解

@Resource和以上类似,JSR-250相关注解

@Value 原始类型注入

总结

以上简单的说明了下Spring支持的注解和其基本的作用,但到目前为止都是纸上谈兵,但是对Spring注解建立总体的印象还是比较重要的。需要注意的是,Spring注解和 XML配置是相辅相成的,各自有优缺点,在实际应用中要根据实际情况来决定。下篇将详细的讲述本篇讲述的内容。

有的旅行是为了拓宽眼界,浏览风景名胜。

spring之注解(一)概述

相关文章:

你感兴趣的文章:

标签云: