006-Spring Boot自动配置-Condition、Conditional
2018-01-22 22:00
603 查看
一、接口Condition、Conditional(原理)
主要提供一下方法boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata);
true:表示装配
false:表示不装配
注解:Conditional() 参数是数组,数组内的都是true才装配
package com.lhx.spring.springboot_auto_config; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.Conditional; @SpringBootApplication public class App2 { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(App2.class, args); System.out.println(context.getBeansOfType(Runnable.class)); context.close(); } }
View Code
默认是不能装配的
可以再application.properties中添加runnable.enable=true即可装配
或者@ConditionalOnProperty(name = "runnable.enable", havingValue = "true")增加
matchIfMissing=true,表示配置没有的时候也生效
示例二:ConditionalOnClass classpath有某个类才装配
增加或删除maven,查看效果
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> </dependency>
使用代码
@Bean @ConditionalOnClass(name="com.google.gson.Gson") public Runnable createGsonRunnable() { return () -> { }; }
示例三、ConditionalOnBean:根据容器中是否存在某个Bean进行装配
@Bean @ConditionalOnBean(name="user") public Runnable createOnBeanRunnable() { return () -> { }; }
相关文章推荐
- Spring boot中@Conditional和spring boot的自动配置实例详解
- 参照SpringBoot的自动配置
- 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置
- springboot配置了控制器和thymeleaf引擎后,控制层返回界面不自动解析
- spring boot自动配置与启动流程分析
- SpringBoot学习笔记(5) Spring Boot集成Redis实现自动配置
- 《Spring Boot 实战:从0到1》第3章 Spring Boot自动配置原理
- 【springboot】基于springboot运行原理实现springboot的自动配置
- Spring Boot自动配置实战
- 初识Spring Boot框架之Spring Boot的自动配置
- Spring Boot核心原理-自动配置
- 学记:为spring boot写一个自动配置
- 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置
- Spring Boot教程(二)--- 推荐的基础 POM 文件和自动配置
- 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置
- spring boot rabbitmq 多MQ配置 自动 创建 队列 RPC
- Spring Boot Cache + redis 设置有效时间和自动刷新缓存,时间支持在配置文件中配置
- 【Spring Boot】SpringBoot-自动配置源码解析
- Spring Boot 运行原理之自动配置
- 通过实例及源码分析关于SpringBoot启动类启动时自动配置问题