叶凌霄资料

本文主要介绍叶凌霄资料 方法和在新技术下所面对的“挑战”,方便大家深入理解叶凌霄资料 过程。本文也将分享叶凌霄资料 所遇到的问题和应对策略,怎么解决怎么做的问题。
通过深入本文可以理解代码原理,进行代码文档的下载,也可以查看相应 Demo 部署效果。

java的自定义配置文件统一读取配置类示例

前言:在我们的日常编程中难免会有些我们自定义的配置,虽然Java中提供了很多的读取配置文件的方法,但是当我们需要修改配置文件的key的时候,就会发现太过散乱了,工作量也会很大,涉及的文件还很多,一不小心就要出问题。那这个时候如果我们能够把所有的配置的key都放到一个文件中,其他文件需要获取配置的时候都调用这个文件,那么即使不管怎么修改配置配置文件的key,我也只需要修改这个文件,刚才的问题不就得到了完美的解决了么

废话不多说,直接上代码

项目目录结构

叶凌霄

 maven依赖:

叶凌霄叶凌霄

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>     <parent>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-parent</artifactId>         <version>2.1.5.RELEASE</version>         <relativePath/> <!-- lookup parent from repository -->     </parent>     <groupId>com.sxy</groupId>     <artifactId>properties-read-demo</artifactId>     <version>0.0.1-SNAPSHOT</version>     <name>properties-read-demo</name>     <description>Demo project for Spring Boot</description>      <properties>         <java.version>1.8</java.version>         <commons.io.version>2.5</commons.io.version>     </properties>      <dependencies>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter</artifactId>         </dependency>          <dependency>             <groupId>org.projectlombok</groupId>             <artifactId>lombok</artifactId>             <optional>true</optional>         </dependency>          <dependency>             <groupId>commons-io</groupId>             <artifactId>commons-io</artifactId>             <version>${commons.io.version}</version>         </dependency>          <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-test</artifactId>             <scope>test</scope>             <exclusions>                 <exclusion>                     <groupId>org.junit.vintage</groupId>                     <artifactId>junit-vintage-engine</artifactId>                 </exclusion>             </exclusions>         </dependency>     </dependencies>      <build>         <plugins>             <plugin>                 <groupId>org.springframework.boot</groupId>                 <artifactId>spring-boot-maven-plugin</artifactId>             </plugin>         </plugins>     </build>  </project>

pom.xml

 自定义配置文件:

叶凌霄叶凌霄

this.custom.config.content = 这是我的自定义配置内容

custom-config.properties

 配置文件加载类:

叶凌霄叶凌霄

package com.sxy.propertiesreaddemo.utils;  import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader;  import java.io.IOException; import java.io.InputStream; import java.util.NoSuchElementException; import java.util.Properties;  /**  * @Description 文件载入工具类.  *                   可载入多个properties文件,  *                   相同的属性在最后载入的文件中的值将会覆盖之前的值,但以System的Property优先.  * @Author SuXingYong  * @Date 2020/7/11 20:55  **/ @Slf4j public class PropertiesLoader {      private static ResourceLoader resourceLoader = new DefaultResourceLoader();      private final Properties properties;      public PropertiesLoader(String... resourcesPaths) {         properties = loadProperties(resourcesPaths);     }      /**      * @Description  取出Property,但以System的Property优先,取不到返回空字符串.      * @Author SuXingYong      * @Date 2020/7/11 20:55      * @Param [key]      * @param key 配置文件的key      * @Return java.lang.String      **/     private String getValue(String key) {         String systemProperty = System.getProperty(key);         if (systemProperty != null) {             return systemProperty;         }         if (properties.containsKey(key)) {             return properties.getProperty(key);         }         return "";     }      /**      * @Description 取出String类型的Property,但以System的Property优先,如果都为Null则抛出异常.      * @Author SuXingYong      * @Date 2020/7/11 20:55      * @Param [key]      * @Return java.lang.String      **/     public String getProperty(String key) {         String value = getValue(key);         if (value == null) {             throw new NoSuchElementException();         }         return value;     }      /**      * @Description 载入多个文件, 文件路径使用Spring Resource格式.      * @Author SuXingYong      * @Date 2020/7/11 20:55      * @Param [resourcesPaths]      * @Return java.util.Properties      **/     private Properties loadProperties(String... resourcesPaths) {         Properties props = new Properties();          for (String location : resourcesPaths) {             log.debug("Loading properties file from:" + location);             InputStream is = null;             try {                 Resource resource = resourceLoader.getResource(location);                 is = resource.getInputStream();                 props.load(is);             } catch (IOException ex) {                 log.info("Could not load properties from path:" + location + ", " + ex.getMessage());             } finally {                 IOUtils.closeQuietly(is);             }         }         return props;     } }

PropertiesLoader.java

配置文件工具类:

 叶凌霄PropertiesUtils.java

配置文件统一对外调用类:

 叶凌霄PropertyConfigValue.java

springboot项目启动类:

 叶凌霄PropertiesReadDemoApplication.java

 

 运行结果:

叶凌霄

 

叶凌霄资料部分资料来自网络,侵权毕设源码联系删除

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 叶凌霄资料

提供最优质的资源集合

立即查看 了解详情