SpringBoot引入自定义配置文件的方式

第一种 @PropertySource

Annotation providing a convenient and declarative mechanism for adding a PropertySource to Spring's Environment. To be used in conjunction with @Configuration classes.

 @Configuration
 @PropertySource("classpath:/com/myco/app.properties")
 public class AppConfig {
     @Autowired
     Environment env;

     @Bean
     public TestBean testBean() {
         TestBean testBean = new TestBean();
         testBean.setName(env.getProperty("testbean.name"));
         return testBean;
     }
 }
  • 可以自定properties文档已经路径
  • 常用文件类型properties、yml
  • 配合@configuration使用
  • 倾向于配置参数

第二种 @ImportResource

Indicates one or more resources containing bean definitions to import.
Like @Import, this annotation provides functionality similar to the element in Spring XML. It is typically used when designing @Configuration classes to be bootstrapped by an AnnotationConfigApplicationContext, but where some XML functionality such as namespaces is still necessary.

 @ImportResource("classpath:config.xml") 
 public class Config{
 }
  • 常用文件类型xml
  • 倾向于功能初始化。例如:早期springboot集成dubbo启动时(现在dubbo可以注解集成了)
@SpringBootApplication
@ImportResource("dubbo-services.xml")
@EnableAutoConfiguration
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

第三种 @Value(本质其实也是第一种)

Annotation at the field or method/constructor parameter level that indicates a default value expression for the affected argument. Typically used for expression-driven dependency injection. Also supported for dynamic resolution of handler method parameters, e.g. in Spring MVC. A common use case is to assign default field values using "#{systemProperties.myProp}" style expressions.

 @Value("{server.port}")
 String port;
  • 默认是系统application.properties/yml文件

文件的定义方式-数组

errorcodes[0]=1234
errorcodes[1]=1234
errorcodes[2]=1234
errorcodes[3]=1234

文件的定义方式-MAP

errorcode_map[1000]=error1
errorcode_map[3001]=error2
errorcode_map[3002]=error3

你可能感兴趣的:(SpringBoot引入自定义配置文件的方式)