前言

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})注解。

springboot 自定义属性的更多相关文章

  1. SpringBoot自定义属性配置以及@ConfigurationProperties注解与@Value注解区别

    我们可以在application.properties中配置自定义的属性值,为了获取这些值,我们可以使用spring提供的@value注解,还可以使用springboot提供的@Configurati ...

  2. springboot自定义属性文件与bean映射注入属性值

    主要有几点: 一.导入依赖 springboot的包和: <dependency> <groupId>org.springframework.boot</groupId& ...

  3. springboot配置文件(.yml)中自定义属性值并在controller里面获取

    1,由于项目需要,学习了新的框架--springboot,顺便练习一下在.yml中配置自定义属性并在controller里面获取.(以下的Springboot框架我已经搭建好,就不在陈述) 2,spr ...

  4. springBoot中实现自定义属性配置、实现异步调用、多环境配置

    springBoot中其他相关: 1:springBoot中自定义参数: 1-1.自定义属性配置: 在application.properties中除了可以修改默认配置,我们还可以在这配置自定义的属性 ...

  5. SpringBoot入门(二):日志及自定义属性

    这一章主要说springboot中日志的配置.自定义属性的配置与读取.分环境的yml配置文件(如本地环境.测试环境.生产环境等).比较偏向实际开发,较为实用,前面一章的一些基本创建在这里就不多废话了. ...

  6. Springboot入门及配置文件介绍(内置属性、自定义属性、属性封装类)

    目的: 1.Springboot入门 SpringBoot是什么? 使用Idea配置SpringBoo使用t项目 测试案例 2.Springboot配置文件介绍 内置属性 自定义属性 属性封装类 Sp ...

  7. springboot 使用yml配置文件自定义属性

    springboot 中在application.yml文件里自定义属性值,配合@Value注解可以在代码中直接取到相应的值,如在application.yml中添加 mqtt: serverURI: ...

  8. SpringBoot logback 配置文件自定义属性

    添加自定义属性类 package com.cus.config; import ch.qos.logback.core.PropertyDefinerBase; import org.springfr ...

  9. SpringBoot笔记一

    1 开始 1.1 spring介绍 Spring Boot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run". 我们为Spring平台及第三方库 ...

随机推荐

  1. 20145109 《Java程序设计》第七周学习总结

    20145109 <Java程序设计>第七周学习总结 Chapter 13 Time & Date Date System.currentTimeMillis() return L ...

  2. UIScrollView监听静止的数种情况

    1.直接通过block -(void)testInBlock { //通过block监听 [UIView animateWithDuration:1.0 animations:^{ self.scro ...

  3. lamp架构之升级php版本

    当你看到这篇文章的时候 YHSPY.COM 服务器上的PHP版本已经从 5.4.27 升级到了 7.0.4,这是一个重大的飞跃.一路升级遇到了很多问题.官方声称PHP7最大的升级就是在语言性能上的提升 ...

  4. Hibernate关联关系映射之一对一关联关系

    人和身份证之间就是一个典型的一对一关联关系.实现一对一关联关系映射的方式有两种一种是基于外键,一种是基于主键,下面我们先看基于外键的关联方式 首先看他们的实体类 Person类 ? 1 2 3 4 5 ...

  5. Luogu-3527 [POI2011]MET-Meteors

    Luogu-3527 [POI2011]MET-Meteors 题面 Luogu-3527 题解 感觉和上一那道题是一个类型的,直接二分答案,用BIT维护区间加(差分)即可 代码 #include&l ...

  6. orecle 函数

    --创建函数语法 create [or replace] function [schema.]function_name (函数参数列表) --参数有IN.OUT.IN OUT三种类型:IN代表需要输 ...

  7. vs2013 浏览器 browserlink 不停访问

  8. 报错HTTP Status 500 - Unable to instantiate Action

    报错如下: HTTP Status 500 - Unable to instantiate Action, visitAction, defined for 'visit_toAddPage' in ...

  9. go语言的排序、结构体排序

    原文:https://studygolang.com/articles/1598 晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题.排序 sort 是个基本的操作,当然搜索 searc ...

  10. ionic2常见问题——解决下载gradle-2.14.1-all.zip太慢或失败

    问题描述 当我们写完ionic2项目准备打包app时(暂时介绍android) 执行命令ionic platform add android的时候下载gradle-2.14.1-all.zip太慢,因 ...