spring-boot实战【05】:Spring Boo多环境配置及配置属性注入到对象

项目工程结构:

配置文件application.properties文件

com.yucong.blog.name=yucong
com.yucong.blog.title=Spring Boot Course
com.yucong.blog.desc=${com.yucong.blog.name} is learing ${com.yucong.blog.title}

# 随机字符串
com.yucong.blog.value=${random.value}
# 随机int
com.yucong.blog.number=${random.int}
# 随机long
com.yucong.blog.bignumber=${random.long}
# 10以内的随机数
com.yucong.blog.test1=${random.int(10)}
# 10-20的随机数
com.yucong.blog.test2=${random.int[10,20]}

# 多环境配置文件激活属性
spring.profiles.active=dev

applicaation-dev.properties

server.port=1111

application-test.properties

server.port=2222

application-prod.properties

server.port=3333

将application.properties文件中自定义的属性注入到类的属性中

BlogProperties.java

 1 package com.yucong.demo.service;
 2
 3 import org.springframework.beans.factory.annotation.Value;
 4 import org.springframework.stereotype.Component;
 5
 6 /**
 7  * @author yucong
 8  * @version 1.0.0
 9  * @date 17/8/17 下午12:16.
10  */
11 @Component
12 public class BlogProperties {
13
14     @Value("${com.yucong.blog.name}")
15     private String name;
16     @Value("${com.didispace.blog.title}")
17     private String title;
18     @Value("${com.yucong.blog.desc}")
19     private String desc;
20
21     @Value("${com.yucong.blog.value}")
22     private String value;
23     @Value("${com.yucong.blog.number}")
24     private Integer number;
25     @Value("${com.yucong.blog.bignumber}")
26     private Long bignumber;
27     @Value("${com.yucong.blog.test1}")
28     private Integer test1;
29     @Value("${com.yucong.blog.test2}")
30     private Integer test2;
31
32     public String getName() {
33         return name;
34     }
35
36     public void setName(String name) {
37         this.name = name;
38     }
39
40     public String getTitle() {
41         return title;
42     }
43
44     public void setTitle(String title) {
45         this.title = title;
46     }
47
48     public String getDesc() {
49         return desc;
50     }
51
52     public void setDesc(String desc) {
53         this.desc = desc;
54     }
55
56     public String getValue() {
57         return value;
58     }
59
60     public void setValue(String value) {
61         this.value = value;
62     }
63
64     public Integer getNumber() {
65         return number;
66     }
67
68     public void setNumber(Integer number) {
69         this.number = number;
70     }
71
72     public Long getBignumber() {
73         return bignumber;
74     }
75
76     public void setBignumber(Long bignumber) {
77         this.bignumber = bignumber;
78     }
79
80     public Integer getTest1() {
81         return test1;
82     }
83
84     public void setTest1(Integer test1) {
85         this.test1 = test1;
86     }
87
88     public Integer getTest2() {
89         return test2;
90     }
91
92     public void setTest2(Integer test2) {
93         this.test2 = test2;
94     }
95 }

单元测试YucongDemo02ApplicationTests.java:

 1 package com.yucong.demo;
 2
 3 import org.apache.commons.logging.Log;
 4 import org.apache.commons.logging.LogFactory;
 5 import org.junit.Assert;
 6 import org.junit.Test;
 7 import org.junit.runner.RunWith;
 8 import org.springframework.beans.factory.annotation.Autowired;
 9 import org.springframework.boot.test.context.SpringBootTest;
10 import org.springframework.test.context.junit4.SpringRunner;
11
12 import com.yucong.demo.service.BlogProperties;
13
14 @RunWith(SpringRunner.class)
15 @SpringBootTest(classes=YucongDemo02Application.class)
16 public class YucongDemo02ApplicationTests {
17
18     private static final Log log = LogFactory.getLog(YucongDemo02ApplicationTests.class);
19
20     @Autowired
21     private BlogProperties blogProperties;
22
23
24     @Test
25     public void test1() throws Exception {
26         Assert.assertEquals("yucong", blogProperties.getName());
27         Assert.assertEquals("Spring Boot Course", blogProperties.getTitle());
28         Assert.assertEquals("yucong is learing Spring Boot Course", blogProperties.getDesc());
29
30         log.info("随机数测试输出:");
31         log.info("随机字符串 : " + blogProperties.getValue());
32         log.info("随机int : " + blogProperties.getNumber());
33         log.info("随机long : " + blogProperties.getBignumber());
34         log.info("随机10以下 : " + blogProperties.getTest1());
35         log.info("随机10-20 : " + blogProperties.getTest2());
36
37     }
38
39 }
时间: 2024-12-12 14:45:46

spring-boot实战【05】:Spring Boo多环境配置及配置属性注入到对象的相关文章

Spring Boot实战(2) Spring常用配置

1. Bean的Scope scope描述Spring容器如何新建Bean的实例.通过注解@Scope实现,取值有: a. Singleton:一个Spring容器中只有一个Bean的实例.此为Spring的默认配置,全容器共享一个实例. b. Prototype:每次调用新建一个Bean的实例 c. Request:Web项目中,给每一个Http Request新建一个Bean实例 d. Session:Web项目中,给每一个Http Session新建一个Bean实例 e. GlobalSe

Spring Boot实战(1) Spring基础

1. Spring基础配置 Spring框架本身有四大原则: 1) 使用POJO进行轻量级和最小侵入式开发 2) 通过依赖注入和基于接口编程实现松耦合 3) 通过AOP和默认习惯进行声明式编程 4) 使用AOP和模板(template)减少模式化代码 所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖.依赖注入主要目的是为了解耦. Spring Ioc容器(ApplicationContext)负责创建Bean,并通过容器将功能类Bean注

《Spring Boot实战》示例代码问题

* Idea环境 * <Java EE开发的颠覆者 Spring Boot实战> 1.2.2 Spring EL 读取文件获取不到: 需把test.txt和test.properties放在resource文件下,将resource文件标记为资源目录,将引用目录换为"classpath:test.txt"就可以. 2. 2.4  Profile 运行报错:GenericApplicationContext does not support multiple refresh

Spring Boot实战系列(7)集成Consul配置中心

本篇主要介绍了 Spring Boot 如何与 Consul 进行集成,Consul 只是服务注册的一种实现,还有其它的例如 Zookeeper.Etcd 等,服务注册发现在微服务架构中扮演这一个重要的角色,伴随着服务的大量出现,服务与服务之间的配置管理.运维管理也变的难以维护,通过 Consul 可以解决这些问题,实现服务治理.服务监控. 关于 Consul 的更多知识点不在这里赘述,但是在学习本节之前还是希望您能先了解下,请移步我之前写的 微服务服务注册发现之 Consul 系列 快速导航

Spring Boot实战之Filter实现使用JWT进行接口认证

Spring Boot实战之Filter实现使用JWT进行接口认证 jwt(json web token) 用户发送按照约定,向服务端发送 Header.Payload 和 Signature,并包含认证信息(密码),验证通过后服务端返回一个token,之后用户使用该token作为登录凭证,适合于移动端和api jwt使用流程 本文示例接上面几篇文章中的代码进行编写,请阅读本文的同时可以参考前面几篇文章 1.添加依赖库jjwt,本文中构造jwt及解析jwt都使用了jjwt库 <dependenc

《Spring Boot实战》笔记(目录)

目录 目 录第一部分 点睛Spring 4.x第1 章 Spring 基础 ............................................................................................................. 21.1 Spring 概述 .......................................................................................

spring boot 实战随书源码

spring boot 实战 -汪云飞 随书源码 点击下载

《02.Spring Boot连载:Spring Boot实战.Spring Boot核心原理剖析》

在上节中我们通过了一个小的入门案例已经看到了Spring Boot的强大和简单之处.本章将详细介绍Spring Boot的核心注解,基本配置和运行机制.笔者一直认为:精通一个技术一定要深入了解这个技术帮助我们做了哪些动作,深入理解它底层的运行原理,只有达到这个目标才可以熟练使用框架,最终达到融会贯通的目的. 一.启动类与@SpringBootApplication Spring Boot的项目一般都会有注解*Application标注的入口类,入口类中会有一个main方法,main方法是一个标准

Spring Boot实战pdf

下载地址:网盘下载 内容简介  · · · · · · 本书以Spring应用程序开发为中心,全面讲解如何运用Spring Boot提高效率,使应用程序的开发和管理更加轻松有趣.作者行文亲切流畅,以大量示例讲解了Spring Boot在各类情境中的应用,内容涵盖起步依赖.Spring Boot CLI.Groovy.Grails.Actuator.对于Spring Boot开发应用中较为繁琐的内容,附录奉上整理完毕的表格,一目了然,方便读者查阅. 作者简介  · · · · · · Craig

spring boot 实战 / mvn spring-boot:run 参数详解

概述   Spring boot项目通常情况下有如下几种启动方式: 通过主类启动. 通过spring-boot的maven插件spring-boot-maven-plugin方式启动. 通过可执行jar/war包方式启动. 通过Servlet容器启动,如Tomcat.Jetty等.   今天我们来聊一下spring boot的maven插件spring-boot-maven-plugin启动过程中的profiles问题.首先,我们前往网站SPRING INITIALIZR,参照下图创建一个名称为