文章目录
- 1.配置类和配置组件(@Configuration + @Bean)
- 2. @Import({类名1.class,类名2.class,....类名n.class})
- 3. 条件装配 @Conditional
-
- @ConditionalOnBean 当容器存在指定的bean时
- @ConditionalOnMissingBean 当容器中不存在指定的bean时
- @ConditionalOnClass 当容器中存在某个class的时候
- @ConditionalOnMissingClass 当容器中不存在某个class的时候
- @ConditionalOnResource 当项目类路径中存在某个资源
- @ConditionalOnJava 当项目的Java是某个版本的时候
- @ConditionalOnWebApplication 当项目是一个web项目的时候
- @ConditionalOnNotWebApplication 当项目不是一个web项目的时候
1.配置类和配置组件(@Configuration + @Bean)
@Configuration声明配置类
/**
* 告诉spring boot这是一个配置类;
* 配置类本身也是一个组件;
* 组件默认是单实例的;
*
* proxyBeanMethods:
* 默认是true
* true--- full
* false--- lite
* 解决组件依赖问题;
* 配置类中组件不存在依赖关系,推荐使用 proxyBeanMethods=false;
* 配置类中组件存在依赖关系,推荐使用proxyBeanMethods=true;
*/
@Bean声明配置组件
/**
* 给spring容器添加组件,
* 方法名就是组件ID;
* 返回类型是组件类型;
* 返回值是组件在容器中的实例;
*/
- 配置类
package com.dh.config;
import com.dh.bean.Pet;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 告诉spring boot这是一个配置类;
* 配置类本身也是一个组件;
* 组件默认是单实例的;
*
* proxyBeanMethods:
* 默认是true
* true--- full
* false--- lite
* 解决组件依赖问题;
* 配置类中组件不存在依赖关系,推荐使用 proxyBeanMethods=false;
* 配置类中组件存在依赖关系,推荐使用proxyBeanMethods=true;
*/
@Configuration(proxyBeanMethods =