Spring boot 系统学习 第二章 基于条件的自动配置
一.自定义条件的自动装配,需要配合@Conditional注解和Condition接口的实现类一起使用。
二.系统已经存在的一些Conditional条件注解,
具体使用如下所示:
1.Condition接口的实现类
public class UTFCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
String encoding=System.getProperty("file.encoding");
if("UTF-8".equals(encoding)) {
return true;
}
return false;
}
}
public class GBKCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
String encoding=System.getProperty("file.encoding");
if("GBK".equals(encoding)) {
return true;
}
return false;
}
}
2.使用自定义的condition条件和使用系统存在的condition条件
@SpringBootConfiguration
public class SpringConfiguration {
@Bean
@Conditional(GBKCondition.class)
public Runnable createRunnable0() {
return ()->{};
}
@Bean
@Conditional(UTFCondition.class)
public Runnable createRunnable1() {
return ()->{};
}
@Bean
@ConditionalOnProperty(name="local.port",havingValue="8080",matchIfMissing=true)//根据name属性的值和havingValue的值进行比较,如果相等则加载对应的bean,matchIfMissing不存在对应的属性则创建对应的bean
public Runnable createRunnable2() {
return ()->{};
}
@Bean
@ConditionalOnBean(name="user")//判断对应name名字的bean是否存在,如果存在则创建此createRunnable3的bean,@ConditionalOnMissingBean于此相反
public Runnable createRunnable3() {
return ()->{};
}
@Bean
@ConditionalOnClass(name="com.example.demo.User2") //判断根据对应name名字对应路径的类是否存在,如果存在则创建此createRunnable4的bean,ConditionalOnMissingClass于此相反
public Runnable createRunnable4() {
return ()->{};
}
}
3.启动spring boot查看对应的类是否存在
ConfigurableApplicationContext context=SpringApplication.run(DemoApplication.class, args);
System.out.println(System.getProperty("file.encoding"));
System.out.println(context.getBeansOfType(Runnable.class));
- 搭建springboot自动配置,基于自己的RedisUtil
- 基于慕课网springboot微信点餐系统学习中出现的bug问题
- SpringBoot学习之自动配置原理
- 基于SpringBoot+Mybatis+Thymeleaf商品信息管理系统项目学习《第一天》
- Spring学习(16)--- 基于Java类的配置Bean 之 基于泛型的自动装配(spring4新增)
- Shiro 学习(一)基于SpringBoot的Apache Shiro环境快速搭建与配置
- Spring Boot 自动配置之条件注解浅析
- SpringBoot学习笔记(3) Spring Boot 运行原理,自动配置
- SpringBoot的WebSocket基于STOMP协议自动广播推送配置
- 基于spring boot对java 轻博客系统tale进行重构学习
- springboot学习--EnableAutoConfiguration自动配置的原理
- Spring Boot 自动配置之条件注解
- SpringBoot关于自动配置类加载的学习笔记
- springboot学习----自动配置
- 【spring-boot】spring-boot-SpringMvc自动配置学习
- SpringBoot学习-第二章 常用配置方式-<Spring Boot 实战>
- SpringBoot学习笔记(5) Spring Boot集成Redis实现自动配置
- 【系统学习SpringBoot】SpringBoot读取Property配置
- SpringBoot学习笔记---自动装配续2之条件装配
- 【springboot】基于springboot运行原理实现springboot的自动配置