• Spring boot 自动配置自定义配置文件


     

    示例如下:

    1.   新建 Maven 项目 properties

    2.   pom.xml

    <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 
            http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.java</groupId>
        <artifactId>properties</artifactId>
        <version>1.0.0</version>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.5.RELEASE</version>
        </parent>
    
    
        <dependencies>
    
            <!-- Spring Boot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    <!-- 
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
            </dependency>
     -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <scope>provided</scope>
            </dependency>
    
    
            <!-- 热部署 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>springloaded</artifactId>
                <version>1.2.8.RELEASE</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
        <build>
            <finalName>${project.artifactId}</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
    
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>

    3.   配置文件  user-defined.properties

    aaa.url.login=aaa-login.html
    aaa.url.order=aaa-order.html
    
    bbb.goods.price=500
    bbb.goods.weight=1000

    4.   PropertiesStarter.java

    package com.java;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * 主启动类
     * 
     * @author Storm
     *
     */
    @SpringBootApplication
    public class PropertiesStarter {
    
        public static void main(String[] args) {
            SpringApplication.run(PropertiesStarter.class, args);
        }
    
    }

    5.   URLProperties.java

    package com.java.properties;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    import lombok.Data;
    
    /**
     * 前缀为aaa.url的配置自动注入到对应属性中
     * 
     * @author Storm
     *
     */
    @Data
    @ConfigurationProperties(prefix = "aaa.url")
    public class URLProperties {
    
        private String login;
        private String order;
    
    }

    6.   GoodsProperties.java

    package com.java.properties;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    import lombok.Data;
    
    /**
     * 前缀为bbb.goods的配置自动注入到对应属性中
     * 
     * @author Storm
     *
     */
    @Data
    @ConfigurationProperties(prefix = "bbb.goods")
    public class GoodsProperties {
    
        private String price;
        private String weight;
    
    }

    7.   PropertiesConfig.java

    package com.java.config;
    
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    
    import com.java.properties.GoodsProperties;
    import com.java.properties.URLProperties;
    
    /**
     * 用户自定义配置文件配置类
     * 
     * @author Storm
     *
     */
    @Configuration
    @PropertySource({ "classpath:user-defined.properties" })
    @EnableConfigurationProperties({ URLProperties.class, GoodsProperties.class })
    public class PropertiesConfig {
    
    }

    8.   DemoController.java

    package com.java.controller;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.java.properties.GoodsProperties;
    import com.java.properties.URLProperties;
    
    @RestController
    public class DemoController {
    
        @Autowired
        private URLProperties url;
    
        @Autowired
        private GoodsProperties goods;
    
        @GetMapping("/getProperties")
        public Map<String, Object> getProperties() {
    
            System.out.println(url.getOrder());
    
            Map<String, Object> map = new HashMap<>();
            map.put("url", url);
            map.put("goods", goods);
            return map;
        }
    
    }

    9.   运行 PropertiesStarter.java ,启动测试

    浏览器输入 http://localhost:8080/getProperties

    返回结果如下:

    {"goods":{"price":"500","weight":"1000"},"url":{"login":"aaa-login.html","order":"aaa-order.html"}}

    配置加载成功!

    Spring boot 自动配置自定义配置文件

    .

  • 相关阅读:
    multiview
    RadioButton
    信息存储与管理读书笔记1
    个人Wordpress站点设置Windows Live writer
    test
    test
    AS类库推荐
    JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用
    actionscript3 中关于sprite的mask问题
    RED5遍历客户端并生成在线列表[转]
  • 原文地址:https://www.cnblogs.com/jonban/p/properties.html
Copyright © 2020-2023  润新知