Spring框架学习笔记----基于注解配置

  Bean的元数据配置,除了可以通过xml文件来配置,还可以通过注解来进行配置。比较常用的注释有:@Required,@Autowired,@Qualifier还有一些JSR注解。


@Required

  @Required主要是用来标注set方法,被标注的set方法,一定要在配置文件里进行显示说明配置,否则会抛出 BeanInitializationException。

@Required注解
必须配置

@Autowired

  @Autowired可以用来标注属性和标注方法。当用@Autowired对属性进行标注时,可以将属性的set方法删去,并且不需要在配置文件中显示配置,IoC就会通过byType(自动装配的一种方法)的方式自动将数据注入到bean中。 

对headteacher属性和classroom属性进行配置
bean的配置文件
测试代码
测试结果

  可以看到,不需要再在student的bean里面显示声明就会自动注入到对象中。

  当@Autowired注释到构造方法上的时候,则将会对该方法的参数进行自动配置。

@Autowired注释到构造方法

bean的配置文件,再运行时得到的结果与注释到set时是一样的。

  @Autowired注解到其他方法时,与注解到成员变量时类似。当某些属性被设置成@Autowired时,若在配置文件中不存在相应的bean,则会跳出相应的异常;这时,可以通过@Autoowired(required=false)来跳过该类的配置。


@Qualifier

  若在bean的xml文件中加入多个同样是Classroom类的bean时,Spring在构造时会默认选择第一个bean。若想指定相应的bean,可以通过@Qualifier注解,通过@Qualifier(“bean的id”/“qualifier的value值”),就可以指定注入相应的bean。

@Qualifier注解
多个同类型bean
通过不同<qualifier>的值来指定bean
测试结果

@Component

  @Component注解主要是将一个类声明成对应xml文件里的一个bean标签

@Component注解
测试结果

  使用@Component注解,相当于在配置文件中写下:<bean id="senior" class="edu.stu.pojo"/>,还有其他类似的注解,如:@Reposity、@Service、@Controller这些注解的作用和@Component类似,只是其代表着的是不同的层(持久层、服务层和控制层),而@Component主要是用在较为中立的层中。


使用JSR注释

  Spring还支持JSR规范的注释

@Resource

  @Resource与@Autowired的注释作用相似,可是@Resource可以制定ByType或者通过ByName方法来进行自动配置;当只是使用默认的@Resource时,其实按照ByType的方式来进行自动配置;而当加入属性name时,则会按照ByName方式来实现自动配置。

通过@Resource进行自动配置
新的bean配置文件
测试结果

  若是将name属性删去,因为有多个classsroom的bean,所以运行结果则会抛出NoUniqueBeanDefinitionException的异常。


反思感受

  通过注解来对bean进行配置,其实本质上还是需要编写xml文件,只是利用注解,可以在一定程度上简化xml文件的编写。

  其实Spring支持的JSR规范还有其他,上面只是简单地介绍@Resource注解;在使用JSR注解之前,需要注册BeanPostProcessor,使用的是下面的语句

注册BeanPostProcessor

  可是可以通过<context:annotion-config/>来简化相应的配置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341

推荐阅读更多精彩内容