- 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.