春天PropertySource注解怎么在引导中使用

  介绍

本篇文章给大家分享的是有关PropertySource注解怎么在春天引导中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强> 1.1。PropertySource注解加载指定的属性文件

春框架提供了PropertySource注解,目的是加载指定的属性文件,接下来我们看一下如何使用该注解。首先我们定义一个配置类,并在类中添加PropertySource注解,如下所示:

@ component   @PropertySource (value=https://www.yisu.com/zixun/{“类路径:配置/jdbc-bainuo-dev.properties”}, ignoreResourceNotFound=false,编码=皍tf - 8”, name=" jdbc-bainuo-dev.properties ")   公开课CustomerDataSourceConfig1 {   私人字符串url;   公共字符串getUrl () {   返回的url;   }   公共空间setUrl(字符串url) {   这一点。url=url;   }   @Override   公共字符串toString () {   返回“CustomerDataSourceConfig {”+   “url=?”/? + url   '} ';   }   }

上述的代码目的是加载类路径路径中配置文件中的<代码> jdbc-bainuo-dev.properties> jdbc-bainuo-dev.properties>

价值值是设置需要加载的属性文件,可以一次性加载多个. name的值我们设置的是<代码> jdbc-bainuo-dev。属性> 资源[配置/jdbc-bainuo-dev类路径。属性]>

可能很多人比较纳闷,为什么是“<代码>资源[配置/jdbc-bainuo-dev类路径。属性]> 类路径:配置/jdbc-bainuo-dev.properties>

了解了上文所述的资源类之后。我们再次明确一点,如果@PropertySource中如果没有设置名称值,则名称值的生成规则是:根据值值查找到最终封装的资源子类,然后调用具体的资源子类实例对象中的getDescription方法,getDescription方法的返回值为最终值的名称。

比如ClassPathResource类中的getDescription方法实现如下:

public  String  getDescription (), {   ,StringBuilder  builder =, new  StringBuilder (“class  path  resource  (“);=,String  pathToUse 路径;   ,if  (this.clazz  !=, null ,,, ! pathToUse.startsWith (“/?), {   ,builder.append (ClassUtils.classPackageAsResourcePath (this.clazz));   ,builder.append (& # 39;/& # 39;);   ,}   ,if  (pathToUse.startsWith (“/?), {=,,pathToUse  pathToUse.substring (1);   ,}   ,builder.append (pathToUse);   ,builder.append (& # 39;] & # 39;);   ,return  builder.toString ();   }

上述的名字处理逻辑暂时先有个印象即可,后续会详细地跟踪源码进行讲解。

<强> 1.2。PropertySource注解加载指定的属性文件测试

上文我们设置了PropertySource注解来加载<代码>“类路径:配置/jdbc-bainuo-dev.properties" 文件。该文件的目录结构如下图所示:

 PropertySource注解怎么在春天引导中使用“> </p> <p> jdbc-bainuo-dev。属性文件内容如下:<br/> </p> <pre类= spring.datasource.shareniu.url=shareniu

应用程序。属性文件内容如下:

spring.profiles.active=dev

上面的配置文件中,<代码> spring.profiles.active 属性配置了当前使用的环境是dev。<代码> spring.datasource.shareniu。url>

下面开始书写Springboot的启动类,如下所示:

@SpringBootApplication   public  class  DemoApplication  {   public  static  void  main (String [], args), {   ,SpringApplication  SpringApplication =, new  SpringApplication (DemoApplication.class);   ,ConfigurableApplicationContext  ConfigurableApplicationContext =, springApplication.run (args);   ,CustomerDataSourceConfig1  customerDataSourceConfig =configurableApplicationContext   ,.getBean (CustomerDataSourceConfig1.class);   ,System.out.print (customerDataSourceConfig);   }   }

春天PropertySource注解怎么在引导中使用