• springboot 自定义属性


    前言

    spring boot使用application.properties默认了很多配置。但需要自己添加一些配置的时候,我们如何添加呢

    1.添加自定义属性

    在src/main/resources/application.properties:加入:

    #自定义属性.
    
    com.whx.blog.name= whx
    
    com.whx.blog.title=Spring Boot教程 

    2 方式一 @Value

    然后通过@Value("${属性名}")注解来加载对应的配置属性,具体如下:

    (以下这种方式已经过时了,不推荐使用,但能正常运行的)。

    @Component
    public class BlogProperties {
       
        @Value("${com.whx.blog.name}")
        private String name;//博客作者
      
    
        @Value("${com.whx.blog.title}")
        private String title;//博客标题
    
    
        // 省略getter和setter
    
    }

     通过单元测试来验证BlogProperties中的属性是否已经根据配置文件加载了。

    引入单元测试依赖:

    <!-- spring boot 单元测试. -->
           <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
           </dependency>

    进行编码进行单元测试:

    package com.kfit;
     
    import org.junit.Assert;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.SpringApplicationConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import com.kfit.properties.BlogProperties;
    /**
     *
     * @author 
     * @version v.0.1
     */
    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringApplicationConfiguration(App.class)
    public class AppTest{
       
        @Autowired
        private BlogProperties blogProperties;
     
        @Test
        public void testBlog() throws Exception {
            System.out.println("AppTest.testBlog()="+blogProperties);
            Assert.assertEquals("Angel",blogProperties.getName());
            Assert.assertEquals("Spring Boot教程", blogProperties.getTitle());
        }
    }

    运行单元测试,完美的看到我们想要的结果了,但是我们刚刚提到了BlogProperties写法已经不推荐使用了,那么怎么写会比较perfect呢?

    3.方式二  @ConfigurationProperties

    看如下优雅的编码风格:

    先引入spring boot提供的一个配置依赖:

    <!--spring boot 配置处理器 -->      
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-configuration-processor</artifactId>
               <optional>true</optional>
            </dependency>

       在这里我们主要使用@ConfigurationProperties注解进行编码

    当我们有很多配置属性的时候,我们会把这些属性作为字段建立一个javabean,并将属性值赋予他们。

    建立javabean为BlogProperties:

    /**
     * prefix="com.whx.blog" :
     *
     * 在application.properties配置的属性前缀,
     *
     * 在类中的属性就不用使用{@value}进行注入了。
     *
     * @author whx
     * @version v.0.1
     */
    @ConfigurationProperties(prefix="com.whx.blog")
    public class BlogProperties {
       
        private String name;//博客作者
       
        private String title;//博客标题
     
        // 省略getter和setter
    }

    需要加个注解@ConfigurationProperties,并加上它的prefix。

    另外需要在应用类或者application类,加EnableConfigurationProperties({BlogProperties.class})注解。

  • 相关阅读:
    个人学习jQuery笔记
    (转载) jQuery页面加载初始化的3种方法
    [转]学会和同事相处的30个原则
    解决iis出现这个问题-2147467259 (0x80004005)
    不规则瀑布流图片墙
    实现图片大小的自动控制( 图片大小控制CSS代码)
    (转载)DataTable使用技巧总结
    (转载) jQuery 页面加载初始化的方法有3种
    ajax连接数据库并操作数据库
    java Semaphore实现ABC三个线程循环打印
  • 原文地址:https://www.cnblogs.com/whx7762/p/7988119.html
Copyright © 2020-2023  润新知