当前位置: 首页 » 产品 » 机械设备 » 正文

Spring Boot如何加载properties和yml配置文件

放大字体  缩小字体 发布日期: 2024-09-30 03:27   来源:http://www.baidu.com/  作者:无忧资讯  浏览次数:18
核心提示:  一、系统启动后注入配置  package com.example.config;  import org.springframework.beans.factory.annotation.Autowir

  一、系统启动后注入配置

  package com.example.config;

  import org.springframework.beans.factory.annotation.Autowired;

  import org.springframework.context.annotation.Configuration;

  import org.springframework.context.annotation.PropertySource;

  import org.springframework.core.env.Environment;

  

  @Configuration

  @PropertySource(ignoreResourceNotFound=true, value={"classpath:/config/email.properties","classpath:/config/email.yml"}, name="email")

  public class Config {}

  需要在ApplicationContext中注册配置

  AnnotationConfigEmbeddedWebApplicationContext context=(AnnotationConfigEmbeddedWebApplicationContext) app.run("参数1");

  context.register(Config.class);

  用以下方式取值

  Environment env=context.getEnvironment();

  System.out.println(env.getProperty("address"));

  email.yml文件配置如下:

  server:

  address: 127.0.0.1

  二、在命令行传入注入到程序中

  public class Main {

  public static void main(String... args) {

  //initialize the command line parsing stuff

  OptionParser parser=new OptionParser();

  parser.accepts("greeting").withRequiredArg();

  OptionSet options=parser.parse(args);

  //create the actual Spring PropertySource

  PropertySource ps=new JOptCommandLinePropertySource(options);

  //setup the Spring context

  AnnotationConfigApplicationContext ctx=new AnnotationConfigApplicationContext();

  ctx.getEnvironment().getPropertySources().addLast(ps);

  //register the property source with the environment

  ctx.register(Greeter.class);

  ctx.refresh();

  Greeter greeter=ctx.getBean(Greeter.class);

  greeter.sayGreeting();

  }

  }

  @Component

  class Greeter {

  @Inject private Environment env;

  //the following would also work

  //@Value("${greeting}")

  //private String greeting;

  

  public void sayGreeting() {

  System.out.println(env.getProperty("greeting", "Welcome!"));

  }

  }

  public static void main(String [] args) {

  SimpleCommandLinePropertySource ps=new SimpleCommandLinePropertySource(args);

  @SuppressWarnings("resource")

  AnnotationConfigApplicationContext ctx=new AnnotationConfigApplicationContext();

  ctx.getEnvironment().getPropertySources().addFirst(ps);

  ctx.register(ApplicationConfig.class);

  ctx.refresh();

  }

  @Configuration

  @EnableScheduling

  @ComponentScan("com.mycompany.package")

  @PropertySource(

  value={"classpath:/application.properties", "file:${config.location}"},

  ignoreResourceNotFound=true

  )

  class ApplicationConfig {

  @Bean

  public static PropertySourcesPlaceholderConfigurer propertyConfigurer() {

  return new PropertySourcesPlaceholderConfigurer();

  }

  }

  @Component

  class MyComponent {

  @Value("${my.property.data}")

  private String myPropertyData;

  @Scheduled(fixedDelayString="${schedule.delay.period}")

  public void run() {

 
 
[ 产品搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]

 

 
推荐图文
推荐产品
点击排行
    行业协会  备案信息  可信网站