- bean接口
public interface EncodingConvert { }
-
实现类
public class UTF8EncodingConvert implements EncodingConvert { }
public class GBKEncodingConvert implements EncodingConvert { }
-
Condition实现
public class GBKCondition implements Condition { @Override public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) { String property = System.getProperty("file.encoding"); return "GBK".equalsIgnoreCase(property); } }
public class UTF8Condition implements Condition { @Override public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) { String property = System.getProperty("file.encoding"); return "UTF-8".equalsIgnoreCase(property); } }
-
配置类
@SpringBootConfiguration public class EncodingConfiguration { @Bean @Conditional(UTF8Condition.class) public EncodingConvert getUTF8Encoding(){ return new UTF8EncodingConvert(); } @Bean @Conditional(GBKCondition.class) public EncodingConvert getGBKEncoding(){ return new GBKEncodingConvert(); } }
-
启动类
@SpringBootApplication public class SpringbootApplication { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(SpringbootApplication.class, args); System.out.println(System.getProperty("file.encoding")); System.out.println(context.getBeansOfType(EncodingConvert.class)); } }
-
启动时设置参数
运行结果
Condition机遇条件创建bean
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.