如何使用@PropertySource读取配置文件


本篇内容主要讲解“如何使用@PropertySource读取配置文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用@PropertySource读取配置文件”吧!有参数文件如下test.properties在系统中读取对应的数据,并注入到属性中测试方法:测试结果:os name : Windows 7author : wpfcenv : 2018/3/29@Import引入javaConfig配置的配置类@ImportResource引入xml对应的配置文件Spring (Boot)获取参数的方式有很多,其中最被我们熟知的为@Value了,它不可谓不强大。今天就针对我们平时最长使用的@Value,以及可能很少人使用的@PropertySource、@ConfigurationProperties等相关注解进行一个详细的扫盲,希望能够帮助到到家,使用起来更加顺畅@Value注解的注入非常强大,可以借助配置文件的注入、也可以直接注入注入普通字符串注入操作系统属性注入表达式结果注入其它Bean的属性:Person类的name属性注入文件资源在resources下放置一个jdbc.properties配置文件。然后可以直接注入注入Url资源语法:${ properties }和#{ SpEL }的语法区别${ property : default_value }#{ obj.property? : default_value } 表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量正常使用的情况,这里不做过多的介绍了,现在介绍一些异常情况${ properties }`:这种比较简单,如果key找不到,启动会失败。如果找不到的时候也希望正常启动,可以采用冒号+默认值的方式#{ obj.property? : default_value }我们发现这个很强大,可以直接把容器的里的一个对象直接注入进来。只是我们可能一般不这么做。如果改成person1,在容器里找不到这个bean,也是会启动报错的。@Value(“#{person1?:null}”)这样也是不行的,因为person1找不到就会报错获取级联属性,下面两种方法都是ok的:二者结合使用:#{ ‘${}’ }注意结合使用的语法和单引号,不能倒过来。两者结合使用,可以利用SpEL的特性,写出一些较为复杂的表达式,如:此注解也是非常非常的强大,用好了,可以很好的实现配置文件的分离关注,大大提高开发的效率,实现集中化管理最简单的应用,结合@Value注入属性值(也是最常见的应用)通过@PropertySource把配置文件加载进来,然后使用@Value获取@PropertySource各属性介绍value:数组。指定配置文件的位置。支持classpath:和file:等前缀 Spring发现是classpath开头的,因此最终使用的是Resource的子类ClassPathResource。如果是file开头的,则最终使用的类是FileSystemResourceignoreResourceNotFound默认值false。表示如果没有找到文件就报错,若改为true就不报错。建议保留falseencoding:加载进来的编码。一般不用设置,可以设置为UTF-8等等factory:默认的值为DefaultPropertySourceFactory.class。源码其实也没什么特别的。其重难点在于:1、DefaultPropertySourceFactory什么时候被Spring加载呢?2、name和resource都是什么时候被赋值进来的?本文抛出这两个问题,具体原因会在后续分析源码的相关文章中有所体现。需要注意的是PropertySourceFactory的加载时机早于Spring Beans容器,因此实现上不能依赖于Spring的IOC。@PropertySource多环免费云主机域名境配置以及表达式使用(spring.profiles.active)方法一:可以这么配置程序员在开发时不需要关心生产环境数据库的地址、账号等信息,一次构建即可在不同环境中运行注意:上面其实都是Spring Framwork提供的功能。而@ConfigurationProperties是Spring Boot提供的。包括@EnableConfigurationProperties也是Spring Boot才有的。它在自动化配置中起到了非常关键的作用ConfigurationPropertiesBindingPostProcessor会对标注@ConfigurationProperties注解的Bean进行属性值的配置。有时候有这样子的情景,我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类该注解在Spring Boot的自动化配置中得到了大量的使用如SpringMVC的自动化配置:似乎我们能看出来一些该注解的使用方式。说明:这里说的两种,只是说的最常用的。其实只要能往容器注入Bean,都是一种方式,比如上面的@EnableConfigurationProperties方式也是ok的关于@EnableConfigurationProperties的解释,在注解驱动的Spring相关博文里会有体现加在类上,需要和@Component注解,结合使用.代码如下java代码:通过@Bean的方式进行声明,这里我们加在启动类即可,代码如下此些方式并不需要使用@EnableConfigurationProperties去开启它。细节:Bean的字段必须有get/set方法,请注意~~~另外还有一种结合@PropertySource使用的方式,可谓完美搭配其余属性见名之意,这里一笔带过:ignoreInvalidFieldsignoreNestedPropertiesignoreUnknownFields简单理解:@ConfigurationProperties 是将application配置文件的某类名下所有的属性值,自动封装到实体类中。@Value 是将application配置文件中,所需要的某个属性值,封装到java代码中以供使用。应用场景不同:如果只是某个业务中需要获取配置文件中的某项值或者设置具体值,可以使用@Value;如果一个JavaBean中大量属性值要和配置文件进行映射,可以使用@ConfigurationProperties;到此,相信大家对“如何使用@PropertySource读取配置文件”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: Scala异常处理的方法是什么

这篇文章主要介绍“Scala异常处理的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Scala异常处理的方法是什么”文章能帮助大家解决问题。Scala是一种多范式的编程语言,支持面向对象和函数式编程。Scal…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/21 20:12
Next 07/21 20:12

相关推荐