阅读 52

Spring 自动装配Bean

自动装配bean spring从两个角度来实现自动化装配bean

  1. 组件扫描:spring会自动发现应用上下文所创建的bean
  2. 自动装配:sring 自动满足bean之间的依赖

组件扫描和自动装配能够使显示的配置降到最低

使用@Componet注解标记的类会作为组件类,spring会为该类创建bean 不过组件扫描默认是不开启的,我们需要显示的配置下spring,从而使他寻找带有@Component注解的类,并为其创建bean

使用@ComponentScan注解启用组件扫描

@ComponentScan默认会扫描与配置类相同的包(包括子包)

为扫描组件的bean命名

Spring 上下文的bean都会有一个ID,如果没有明确的指定ID,默认会使用类名作为ID(首字母会小写)

@Component("lonelyHeartsClub") 
//这样就为bean指定了一个ID
复制代码

我们还可以使用@Named注解标记组件类,@Named与@Component之间的差异很细微,大多数场景是可以相互替换的

@Named是Java依赖注入规范提供的注解,Spring是支持的

如果@ComponentScan没有任何属性,他会按照默认规则,以配置类所在的包作为基础包(base package)来扫描组件

但是我们要是想要扫描不同的包呢.

我们要做的就是在@ComponentScan注解的value属性中指定包

如果我们想要设置多个包呢,我们将basePackages属性设置为要扫描包的数组即可.

上面的情况我们设置的基础包都是字符创表示的,这种方法是类型不安全的,如果你重构代码的话,指定的基础包可能会出现错误

@ComponentScan还有个basePackageClasses属性,设置一些类,sping会以这些类所在的包作为基础包

自动装配

自动装配就是让spring自动满足bean依赖的一种方式.我们借助的是@Autowired注解(按照类型注入) @Autowired可以用在构造方法上,setter方法上以及属性上

关注下面的标签,发现更多相似文章
评论