Day01:Spring容器

2017-07-21  本文已影响0人  宇宙超人喵学长

1、基本装配

1.0 属性注入和构造器注入的差异

1.1

@Component注解:表明该类会作为组件类,spring为其创建bean,参数为id(也可使用@Named注解为bean设置ID)
@ComponentScan:默认不启用组件扫描,需要显示配置,默认扫描与配置类相同的包,参数为包的名称,

若使用xml启动组件扫描:<context:component-scan base-package="soundsystem" />

1.2

@Bean(destoryMethod="shutdown")
@Autowired:spring特有,可用@Inject替换,自动装配,可用在构造器或属性的Setter方法上,参数required=true时,没有匹配到bean会抛异常,

1.3 JavaConfig - 通过Java装配bean

1.4 XML装配bean

1.5 属性设置

对强依赖使用构造器注入
对可选性依赖使用属性注入
spring的p-命名空间替代<property>元素:xmlns:p="https://www.springframework.org/schema/p" p:compactDisc-ref="compactDisc //装配compactDisc属性

c-命名空间和p-命名空间:-ref后缀是装配bean,没有装配的就是字面量,不能使用p-空间装配集合,

1.6 组合配置

拆分config


2、高级装配

2.1 profile(环境)

3、条件化bean

@Conditional(MagicExistsCondition.class) //条件创建bean public class MagicExistsCondition implements Condition { public boolean matches { return true/false; } }

ConditionContext接口:

AnnotatedTypeMetadate接口:检查带有@Bean注解的方法上还有什么其他的注解(isAnnotated())

3.1.1 自动装配有歧义时

3.2 bean的作用域

在bean的类上使用@Scope注解,参数为ConfigurableBeanFactory.SCOPE_XXXXX

默认所有的bean:单例(singleton)模式

上一篇 下一篇

猜你喜欢

热点阅读