本篇文章给大家分享的是有关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> 代码。其中编码用于指定读取属性文件所使用的编码,我们通常使用的是utf - 8, ignoreResourceNotFound含义是当指定的配置文件不存在是否报错,默认是假,比如上文中指定的加载属性文件是<代码> jdbc-bainuo-dev.properties> 代码。如果该文件不存在,则ignoreResourceNotFound为真正的时候,程序不会报的错,如果ignoreResourceNotFound为假的时候,程序直接报错。实际项目开发中,最好设置ignoreResourceNotFound为假的。该参数默认值为假的。
价值值是设置需要加载的属性文件,可以一次性加载多个. name的值我们设置的是<代码> jdbc-bainuo-dev。属性> 代码。这个值在Springboot的环境中必须是唯一的,如果不设置,则值为:" <代码>资源[配置/jdbc-bainuo-dev类路径。属性]> 代码”。
可能很多人比较纳闷,为什么是“<代码>资源[配置/jdbc-bainuo-dev类路径。属性]> 代码”呢?这个就涉及到春天了中对资源文件的封装类资源。上文我们配置的价值值为“<代码>类路径:配置/jdbc-bainuo-dev.properties> 代码“,因此春发现是类路径开头的,因此最终使用的是资源的子类ClassPathResource。如果是文件开头的,则最终使用的类是FileSystemResource。
了解了上文所述的资源类之后。我们再次明确一点,如果@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" 代码>文件。该文件的目录结构如下图所示:
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注解怎么在引导中使用