Spring 阅读笔记

阅读Spring实战第四版笔记    著 [美] Craig Walls   译 张卫滨

Spring 为企业级的开发提供了丰富功能,但是这些功能的底层都依赖于它的两个核心特性。也就是依赖注入(DI),面向切面编程(AOP)。

一、Spring使命:简化Java开发

  1. 基于POJO的轻量级和最小侵入性编程
  2. 通过依赖注入和面向接口实现松耦合
  3. 基于切面和惯例进行声明式编程
  4. 通过切面和模板减少样板式代码

二、装配Bean

  • 在XML中进行显式配置
  • 在Java中进行显式配置
  • 隐式的bean发现机制和自动装配

Spring从两个角度来实现自动装配,

组件扫描:Spring会自动发现应用上下文中所创建的bean

自动装配:Spring会自动满足bean之间的依赖


@Component 表明该类作为组件类,告知Spring要为这个类创建bean

Spring上下文中所有的bean都会给定一个ID,默认情况使用类名第一个字母变为小写(TimConcur--timConcur),也可以@Component("beanName")自定义名称。


@ComponentScan 组件扫描默认不启动,此注解开启组件扫描,默认扫描与配置类相同名字的包及包下所有的子包,查找带有@Component注解的类,spring为其创建bean;可以使用XML的方式配置启用扫描,如下图

设置组件扫描的基础包,通过basePackages属性配置@ComponentScan(basePackages={"a","b"})


@Autowired 自动装配就是让Spring自动满足bean依赖的一种方法, 在满足依赖的过程中, 会在Spring应用上下文中寻找匹配某个bean需求的其他bean。 为了声明要进行自动装配, 我们可以借助Spring的@Autowired注解。

Spring 会满足方法参数上声明的依赖,如果有且只有一个bean匹配依赖需要,那么这个bean就会被装配进来。

没有匹配的bean,Spring 会抛出异常,想要避免异常的出现可以设置@Autowired的required属性设置为false,@Autowired(required=false)。

如果有多个匹配的bean,就会出现自动装配的歧义性

自动装配的歧义性

1、标识首选bean ,使用注解@Primary,当时用多个@Primary时,首选标识无用

2、限定自动装配的bean,使用注解@Qualifier,(@Qualifier("a",""b)),当一个限定符不能满足条件时,可以使用多个


  • 声明bean

 




 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值