当前位置: 首页 > news >正文

竞猜网站建设城乡建设工程信息网

竞猜网站建设,城乡建设工程信息网,网站建设域名服务器,互联网信息服务平台从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一#xff0c;简单回顾一下这六种的使用方式#xff1a; 说明Environment对象Environment是springboot核心的环境配置接口#xff0c;它提供了简单的方法来访问应用程序属性#xff0c;包括系统属性、操作系统…从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一简单回顾一下这六种的使用方式 说明Environment对象Environment是springboot核心的环境配置接口它提供了简单的方法来访问应用程序属性包括系统属性、操作系统环境变量、命令行参数、和应用程序配置文件中定义的属性等等使用Environment方式来获取配置属性值非常简单只要注入Environment类调用其方法 getProperty(属性key) 即可。ValueValue注解是Spring框架提供的用于注入配置属性值的注解它可用于类的成员变量、方法参数和构造函数参数上 在应用程序启动时使用Value注解的Bean会被实例化。所有使用了Value注解的Bean会被加入到PropertySourcesPlaceholderConfigurer的后置处理器集合中。当后置处理器开始执行时它会读取Bean中所有Value注解所标注的值并通过反射将解析后的属性值赋值给标有Value注解的成员变量、方法参数和构造函数参数。重要 ⚠️注意 ①在使用Value注解时需要确保注入的属性值已经加载到Spring容器中否则会导致注入失败 ②建议引用变量的时候给定一个默认值避免启动报“缺失配置”的错误 ③通过依赖注入的方式获取对象中属性值切记不要使用new的方式来创建对象获取其属性。ConfigurationPropertiesSpringBoot提供的一种更加便捷来处理配置文件中的属性值的方式可以通过自动绑定和类型转换等机制将指定前缀的属性集合自动绑定到一个Bean对象上。PropertySourcesPropertySources注解的实现原理相对简单应用程序启动时扫描所有被该注解标注的类获取到注解中指定自定义配置文件的路径将指定路径下的配置文件内容加载到Environment中这样可以通过Value注解或 Environment.getProperty()方法来获取其中定义的属性值了。默认只限读取properties文件内容想加载yaml文件内容可以自定义factory适配器指定factory具体的使用。YamlPropertiesFactoryBean对象只限读取yaml文件通过Value注解或Environment.getProperty()方法来配合着获取其中定义的属性值。JAVA原生通过java.util.Properties去加载配置文件中的属性。 一、Environment 注入Environment类调用其方法getProperty(属性key)即可。 Slf4j SpringBootTest public class EnvironmentTest {Resourceprivate Environment env;Testpublic void var1Test() {String var1 env.getProperty(env.var1);log.info(Environment获取的配置内容{}, var1);} }二、Value注解 只要在变量上加注解Value(${env.var1})就可以了Value注解会自动将配置文件中的env.var1属性值注入到var1字段中。 Slf4j SpringBootTest public class EnvVariablesTest {Value(${env.var1})private String var1;Testpublic void var1Test(){log.info(配置文件属性: {},var1);} }三、ConfigurationProperties注解 在application.yml配置文件中添加配置项 env:var1: 变量值1var2: 变量值2创建一个MyConf类用于承载所有前缀为env的配置属性。 Data Configuration ConfigurationProperties(prefix env) public class MyConf {private String var1;private String var2; }在需要使用var1、var2属性值的地方将MyConf对象注入到依赖对象中即可。 Slf4j SpringBootTest public class ConfTest {Resourceprivate MyConf myConf;Testpublic void myConfTest() {log.info(ConfigurationProperties注解获取的配置内容{}, JSON.toJSONString(myConf));} }四、PropertySources注解 在src/main/resources/目录下创建自定义配置文件important.properties增加两个属性。 env.var1变量值1 env.var2变量值2在需要使用自定义配置文件的类上添加PropertySources注解注解value属性中指定自定义配置文件的路径可以指定多个路径用逗号隔开。 Data Configuration PropertySources({PropertySource(value classpath:important.properties, encoding utf-8),PropertySource(value classpath:important.properties,encoding utf-8) }) public class PropertySourcesConf {Value(${env.var1})private String var1;Value(${env.var2})private String var2; }五、YamlPropertiesFactoryBean加载YAML文件 Configuration public class MyYamlConfig {Beanpublic static PropertySourcesPlaceholderConfigurer yamlConfigurer() {PropertySourcesPlaceholderConfigurer configurer new PropertySourcesPlaceholderConfigurer();YamlPropertiesFactoryBean yaml new YamlPropertiesFactoryBean();yaml.setResources(new ClassPathResource(test.yml));configurer.setProperties(Objects.requireNonNull(yaml.getObject()));return configurer;} }可以通过Value注解或Environment.getProperty()方法来获取其中定义的属性值。 Slf4j SpringBootTest public class YamlTest {Value(${env.var3})private String var3;Testpublic void myYamlTest() {log.info(Yaml获取配置内容{}, var3);} }六、JAVA原生读取 Slf4j SpringBootTest public class CustomTest {Testpublic void customTest() {Properties props new Properties();try {InputStreamReader inputStreamReader new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream(test.properties),StandardCharsets.UTF_8);props.load(inputStreamReader);} catch (IOException e1) {System.out.println(e1);}log.info(Properties Name props.getProperty(env.appName));} }
http://www.hkea.cn/news/14579189/

相关文章:

  • 龙岩网站建设找哪家网站改版 优势
  • 免费软件app下载大全正能量网站1688网站店招怎么做
  • 腾讯云win建设网站敬请期待英语怎么说
  • Delphi 网站开发框架网站不做301可以吗
  • 手机网站底部导航菜单济南个人网站建设
  • 广州网站建设360元老网站绑定新网站如何做?
  • 英国做电商网站dede网站收录
  • 如何自己做网站一年赚一亿怎么做一个网上商城
  • 贵州网站建设系统右玉网站建设
  • 网站设计师网站上传的工具
  • 做网站需要套模板网站开发技术联系方式
  • 国内优秀企业网站设计欣赏电商网站合作
  • 校园网站建设的开题报告苏州做网站最好公司有哪些
  • 内部网站制作网站制作有限
  • 房地产网站案例宝安公司网站建设
  • 网站建设毕业设计中期进度报告做三折页的网站
  • 网站设计模版免费下载网页设计的目的
  • 网站数据库是干什么的网站建设业务的途径的体会
  • 站内营销推广的案例品牌建设和品牌打造
  • 公司页面网站设计模板网站快照描述
  • 天河公司网站建设公司网站浮动窗口怎么做的
  • 佛山市和城乡建设局网站网站中的冒号
  • dj网站建设无锡万度网站建设
  • 网站开发技术方案doc常用网站网址
  • 成都网站制作软件辽宁省建设工程造价总站网站
  • 切实加强门户网站建设千库网ppt模板免费
  • 网站推广优化技巧山东能源集团 网站建设
  • 网站系统制作教程制作动漫的软件
  • 四川省城乡住房建设部网站最近实时热点事件
  • 深圳专业商城网站设计织梦技术个人网站模板