Condition機遇條件創建bean

  1. bean接口
    public interface EncodingConvert {
    }

     

  2. 實現類

    public class UTF8EncodingConvert implements EncodingConvert {
    }
    public class GBKEncodingConvert implements EncodingConvert {
    }

     

  3. 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);
        }
    }

     

  4.  

    配置類

    @SpringBootConfiguration
    public class EncodingConfiguration {
        @Bean
        @Conditional(UTF8Condition.class)
        public EncodingConvert getUTF8Encoding(){
            return new UTF8EncodingConvert();
        }
        @Bean
        @Conditional(GBKCondition.class)
        public EncodingConvert getGBKEncoding(){
            return new GBKEncodingConvert();
        }
    }
  5. 啓動類

    @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));
    	}
    
    }

     

  6.  

    啓動時設置參數

    運行結果

     

     

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章