java框架之Spring boot三:SpringBoot自定义配置一

原创 2018年04月15日 22:13:10

java框架之Spring boot三:SpringBoot自定义配置一

私有化配置文件

刚才我们介绍了在主配置文件汇中配置对应的文件,如果我们想要自定义配置文件该怎么处理呢?
现在就要给大家介绍我们的@PropertySource注解。
@PropertySource:注解可以从properties文件中,获取对应的key-value值,将其赋予变量
同时,这个注解可以加载多个配置文件生成对应的bean类。
对应的bean,Person.java:

package com.example.demo.bean;


import java.util.Date;
import java.util.Map;
import java.util.List;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@PropertySource(value= {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix="person")
public class Person {
    /**/
    private String name;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String, Object> maps;
    private List<Object> lists;
    private Dog dog;
    public Person() {
        super();
    }
    public Person(String name, Integer age, Boolean boss, Date birth, Map<String, Object> maps, List<Object> lists,
            Dog dog) {
        super();
        this.name = name;
        this.age = age;
        this.boss = boss;
        this.birth = birth;
        this.maps = maps;
        this.lists = lists;
        this.dog = dog;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public Boolean getBoss() {
        return boss;
    }
    public void setBoss(Boolean boss) {
        this.boss = boss;
    }
    public Date getBirth() {
        return birth;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
    public Map<String, Object> getMaps() {
        return maps;
    }
    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }
    public List<Object> getLists() {
        return lists;
    }
    public void setLists(List<Object> lists) {
        this.lists = lists;
    }
    public Dog getDog() {
        return dog;
    }
    public void setDog(Dog dog) {
        this.dog = dog;
    }
    @Override
    public String toString() {
        return "Person [lastName=" + name + ", age=" + age + ", boss=" + boss + ", birth=" + birth + ", maps="
                + maps + ", lists=" + lists + ", dog=" + dog + "]";
    }

}

对应的配置文件,person.properties:

person.name=bbbb
person.age=21
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=15
person.lists=a,b,c
person.dog.name=dog
person.dog.age=15

其他不变,这样就能获取到该配置文件中的信息了

注意事项:
1、@ConfigurationProperties(prefix=”person”)这个注解不能取消
2、person.properties的路径要正确

配置文件占位符

配置文件的书写:

person.name=bbbb${random.uuid}
person.age=${random.int}
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=15
person.lists=a,b,c
person.dog.name=${person.name}'s dog
person.dog.age=15

实现的结果:

Person [lastName=bbbb36f62437-bac7-4c8e-8686-c7c9b02f3d92, age=1353596658, boss=false, birth=Fri Dec 15 00:00:00 CST 2017, maps={k1=v1, k2=15}, lists=[a, b, c], dog=Dog [name=bbbbbeca97d0-7c5e-4e96-abe3-a8d630672275's dog, age=15]]

profile

profile是Spring对不同环境提供不同配置的功能的支持,可以通过激活、指定参数等方式快速切换环境变量。
主要说一下两种方式:

多profile文件

我们在主配置文件编写的时候,文件名可以使 application-{profile}.properties

application.properties:

server.port=8081
spring.profiles.active=dev

application-dev.properties:

server.port=8082

注意:当有多个配置文件后,没有进行配置文件配置,默认启用application.properties

版权声明:本文为博主原创文章,欢迎转载并标明出处。 https://blog.csdn.net/u014785563/article/details/79954213

初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置

在上篇博客初识Spring Boot框架中我们初步见识了SpringBoot的方便之处,很多小伙伴可能也会好奇这个Spring Boot是怎么实现自动配置的,那么今天我就带小伙伴我们自己来实现一个简单...
  • u012702547
  • u012702547
  • 2016年12月20日 14:47
  • 25030

SpringBoot构建微服务实战 之 @Enable*

SpringBoot构建微服务实战 之 @Enable*本节我们将学一下SpringBoot 的@Enable* 注解。 SpringBoot 的@Enable* 的目的在于起因Spring的某一个...
  • u012437781
  • u012437781
  • 2017年11月24日 16:14
  • 733

一起学JAVA之《spring boot》04 - spring boot 自定义(外化)配置

一、导航本节内容简介: 1. 配置介绍 2. 配置随机值 3. 访问命令行属性,jar包代码结构 4. 不同环境的配置文件 5. 配置文件中的占位...
  • likeaijiaqi
  • likeaijiaqi
  • 2017年06月28日 23:45
  • 760

spring boot中自定义错误提示页面

当程序出错的时候,比如500错误,当用户输入的url错误时会找不到网页。 在这种情况下如果用默认的错误页面非常不友好。 一般我们都需要定制一些错误的页面。 在普通的web项目中很简单...
  • gebitan505
  • gebitan505
  • 2017年04月13日 15:23
  • 4423

springboot使用自定义配置文件

由于高版本的springboot去掉了@configurationProperties中的location参数,然后在网上查了一些资料,总结了以下两种方法使用自定义的配置文件: 1. 第一种方法: 参...
  • lom9357bye
  • lom9357bye
  • 2017年08月21日 21:00
  • 3420

Spring Boot中使用自定义的properties

Spring Boot中使用自定义的propertiesSpring Boot的application.properties中已经提供了很多默认的配置,如果要添加自定义的配置该怎么办呢?我们可以继续在...
  • xiaoyu90520
  • xiaoyu90520
  • 2016年09月14日 15:49
  • 13212

4.Springboot 之 自定义配置文件及读取配置文件

本文所属【知识林】:http://www.zslin.com/web/article/detail/12 读取核心配置文件 核心配置文件是指在resources根目录下的application.p...
  • zhaoshuliok
  • zhaoshuliok
  • 2017年04月17日 22:37
  • 6654

Spring Boot1.5使用自定义的properties文件

Spring Boot使用自定义的properties文件
  • john1337
  • john1337
  • 2017年05月09日 10:21
  • 2212

Spring Boot笔记之自定义启动banner

控制banner内容 Spring Boot启动的时候默认的banner是spring的字样,看多了觉得挺单调的,Spring Boot为我们提供了自定义banner的功能。 自定义banner只...
  • ztx114
  • ztx114
  • 2017年09月29日 20:45
  • 1340

spring boot 使用自定义配置

在spring boot的自动配置中,即使不使用写任何配置文件,通过默认配置大多都可以运行起来。但是有些时候这些配置并不能满足我们的需求,需要我们自己的定制。例如:数据源地址,中间件地址等,默认的都是...
  • u013530955
  • u013530955
  • 2017年03月05日 14:43
  • 1187
收藏助手
不良信息举报
您举报文章:java框架之Spring boot三:SpringBoot自定义配置一
举报原因:
原因补充:

(最多只允许输入30个字)