- 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)); } } -
启动时设置参数
运行结果
相关文章: