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之注解(一)概述的更多相关文章
- Spring基于注解的配置概述
以下内容引用自http://wiki.jikexueyuan.com/project/spring/annotation-based-configuration.html: 从Spring 2.5开始 ...
- 【SSM 2】spring常用注解
声明:以下观点,纯依据个人目前的经验和理解,有不当之处,多指教! 一.基本概述 注解(Annotation):也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举 ...
- 关于spring事务注解实战
1.概述 spring的事务注解@Transaction 相信很多人都用过,而@Transaction 默认配置适合80%的配置. 本篇文章不是对spring注解事务做详细介绍,而是解决一些实际场景下 ...
- Spring的注解问题
Annotation(注解)概述 从JDK5.0开始, Java增加了对元数据(MetaData)的支持,也就是 Annotation(注解). Annotation其实就是代码里的特殊标记,它用于替 ...
- Spring - Spring 常用注解
概述 简单整理一些 Spring 的注解 这个算是一个 水一波 类型的整理 内容不全 分类可能有的地方不会太符合逻辑 而且时间也不太充裕 先把自己想写的写下来, 然后随缘整理吧 约定 版本 Sprin ...
- Spring MVC注解的一些案列
1. spring MVC-annotation(注解)的配置文件ApplicationContext.xml <?xml version="1.0" encoding=& ...
- Spring系列之Spring常用注解总结
传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点:1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文件 ...
- spring @condition 注解
spring @condition注解是用来在不同条件下注入不同实现的 demo如下: package com.foreveross.service.weixin.test.condition; im ...
- spring mvc(注解)上传文件的简单例子
spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...
随机推荐
- PowerDesigner常用技巧
PowerDesigner是非常强大的数据库设计软件,熟练使用PowerDesigner可以使数据库设计高效而简洁.PowerDesign具体操作在帮助文档(按F1)里面有详细描述,这儿只是列出了常用 ...
- Java 网络IO编程(BIO、NIO、AIO)
本概念 BIO编程 传统的BIO编程 代码示例: public class Server { final static int PROT = 8765; public static void main ...
- BZOJ 2406 二分+有上下界的网络流判定
思路: 求出每行的和 sum_row 每列的和 sum_line 二分最后的答案mid S->i 流量[sum_row[i]-mid,sum_row[i]+mid] i->n+j ...
- 基于bootstarp的Dailog
oaoDailog开发帮助 1. 帮助文档关键字 boostrap模态框oaoDailog 2. 使用场景 当网页上点击某个按钮需要给予用户提示确认,用户点击确认按钮才 ...
- objc_setAssociatedObject获取cell上button对应所在的行
#import <UIKit/UIKit.h> @interface TestCell : UITableViewCell @property (weak, nonatomic) IBOu ...
- CSS自定义消息提示
1.效果 2.源码 <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...
- bootstrap 图片 图标
一.图片 1.响应式图片:<img src=" " class="responsive"> 2.圆角图片:<img src=" ...
- Android HTTP下载文件并保存到本地或SD卡
想把文件保存到SD卡中,一定要知道SD卡的路径,获取SD卡路径: Environment.getExternalStorageDirectory() 另外,在保存之前要判断SD卡是否已经安装好,并且可 ...
- JAVA面试题基础部分(二)
10.使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的.例如,对于如下 ...
- dubbo之线程模型
事件处理线程说明 如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识,则直接在IO线程上处理更快,因为减少了线程池调度. 但如果事件处理逻辑较慢,或者需要发起新的IO请求 ...