________________初学springboot7

Condition自动配置

@Conditional配合condition接口使用,只有借口的实现类返回true,才会装配

使用在方法上只对方法有效,使用在类上,对类所有方法有效

也可以传多个参数,表示这些参数都返回true才会装配

@SpringBootConfiguration

public class EncodingConvertConfiguration {

@Bean

@Conditional(UTF8Condition.class)

public EncodingConvert createUTF8EncodingConvert() {

return new UTF8EncodingConvert();

}

@Bean

@Conditional(GBKCondition.class)

public EncodingConvert createGBKEncodingConvert() {

return new GBKEncodingConvert();

}

}

public class UTF8Condition implements Condition {

@Override

public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {

String encoding=System.getProperty("file.encoding");

if(encoding!=null) {

return "utf-8".equals(encoding.toLowerCase());

}

return false;

}

}

 

maven springboot jar包下 condition 的子类

 

@conditiononclass 这个类存在的情况下才装配

@conditiononproperties  这个属性跟值匹配的情况下才装配。 matchIfMissing=true 找不到也返回true

 @conditiononbean 根据容器中是否存在某个bean来装配

 @conditiononmissingbean 根据容器中不在某个bean来装配

 

 

 

修改系统默认编码 启动项 -Dfile.encoding=GBK

posted @ 2018-07-23 01:57  637  阅读(251)  评论(0编辑  收藏  举报