一篇 随笔记,无排版。分类于 乱七八糟 名下。来自 《Spring 实战4》的阅读笔记
装配 Bean
装配:创建应用对象之间协作关系的行为。
spring 三种配置方案
- 自动装配
- Java 配置
- XML 配置
三种方式 可以混合使用,推荐程度,由上到下 依次降低。
自动装配
自动装配分为:
- 组件扫面 : 用于 在ApplicationContext 中创建 Bean。
- 自动装配:满足各个Bean 之间的依赖关系。
代码演示
@Component // 标志 此类 会被 创建为 Bean
public class A implements B{
private String a;
public void showA(){
System.out.println("----->"+a);
}
}
B 是一个 接口,自己 瞎定义的。
@Component
注解: 表明该类为组件类 ,该类 会被声明 为 Bean。- 为bean 命名:
@Component("a")
,指定 bean 的ID 为 a。
- 为bean 命名:
配置类:启用组件扫描
@Configuration
@ComponentScan // 启用组件扫描,
public class AConfig{
}
@Configuration
注解,用来 表明 此类 为 配置类。@ComponentScan
注解,启动扫面,默认扫描 配置类 所在的包及其子包,扫描那些 被@Component
修饰的类。- 指定需要扫描的包:
@ComponentScan("包名")
,里面 对应value
属性。 - 设置 基础 包:
@ComponentScan(basePackages="基础包名")
,通过backPackages
属性。 - 指定 多个基础包:
@ComponentScan(basePackages={"基础包名1", "基础包名2"})
,都放到{}
里。 - 通过类所在的包,来设置需要扫描的包, 通过
basePackageClasses
属性@ComponentScan(basePackageClasses="{A.class, B.classs}")
- 指定需要扫描的包:
XML 中 使用 ComponentScan 的方式。
<beans>
<context:component-scan base-package="需要扫描的包"/>
</beans>
测试
@ContextConfiguration(classes="AConfig.class")
public class Tets{
@Autowired
private B b;
&#