SpringBoot学习(2)

Spring Boot配置文件

如果想引用配置文件中的值可以按照如下方法:

例如,在配置文件中增加两个属性,分别是cupSize和age

server:
  port: 8889
  context-path: /demo
cupSize: B
age: 18

那么在Controller可以使用标签绑定类里面的属性值,并直接获得属性文件中配置的值:

    @Value("${cupSize}")
    private String cupSize;

    @Value("${age}")
    private Integer age;


同样,也可以在配置文件中再使用配置文件的值,例如:

server:
  port: 8889
  context-path: /demo
cupSize: B
age: 18
content: "cupSize: ${cupSize}, age: ${age}"

Controller:

    @Value("${content}")
    private String content;


这样一个个属性的引用比较麻烦,这样我们可以写一个类,然后让这个类对应一个分组下的所有属性:

1. 修改属性文件

server:
  port: 8889
  context-path: /demo
girl:
  cupSize: B
  age: 18

2. 新建一个类对应girl这个分组下的所有属性

package com.lys.demo3;

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

@Component
@ConfigurationProperties(prefix = "girl")
public class GirlProperties {

    private String cupSize;

    private Integer age;

    public String getCupSize() {
        return cupSize;
    }

    public Integer getAge() {
        return age;
    }

    public void setCupSize(String cupSize) {
        this.cupSize = cupSize;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

}

3. 修改Controller

package com.lys.demo3;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Autowired
    private GirlProperties girlProperties;

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String sayHello() {
        return girlProperties.getCupSize() + girlProperties.getAge();
    }
}

那么关键来了,如果在实际工作中如果真对开发和生产两个环境使用不同的配置该如何呢?看下面例子。

1. 新建立两个配置文件,分别取名为application-dev.yml和application-prod.yml

application-dev.yml:

server:
  port: 8880
  context-path: /demo
girl:
  cupSize: B
  age: 18

application-prod.yml:

server:
  port: 8889
  context-path: /demo
girl:
  cupSize: C
  age: 18

2. 更改默认配置文件application.yml

spring:
  profiles:
    active: dev

没错,就是active属性指定当前应用使用哪个配置文件。

3. 接下来就可以启动应用验证结果了。

同时,这样做获悉你仍然感觉有些麻烦,还记得springBoot的启动方式么,没错用命令行启动,这里可以指定使用的配置。

如:java -jar demo2-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

项目目录结构:

时间: 2024-09-30 05:26:33

SpringBoot学习(2)的相关文章

Springboot学习记录1--概念介绍以及环境搭建

摘要:springboot学习记录,环境搭建: 官方文档地址:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ 本机为Ubuntu 概念:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速

SpringBoot学习笔记(5):处理前端JSON返回的日期的格式

SpringBoot学习笔记(4):处理前端JSON返回的日期的格式 问题描述 前端页面显示的时间为毫秒格式,不利于直观显示! 解决方法1--后端解决 public class Flow { @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8") private Date flow_date; ..... } 解决方法2--JS处理 function crtTimeFtt(val, row) { if (val !

SpringBoot学习笔记(1):配置Mybatis

SpringBoot学习笔记(1):配置Mybatis 参考资料: 1.AndyLizh的博客 2.xiaolyuh123的博客 快速开始 添加Mybatis依赖(其他依赖已省去) <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId

Springboot学习笔记

Springboot学习笔记(一)-线程池的简化及使用 Springboot学习笔记(二)-定时任务 Springboot学习笔记(三)-常用注入组件方式 原文地址:https://www.cnblogs.com/yw0219/p/9060331.html

SpringBoot学习-SpringMVC自动配置

SpringBoot学习-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configuration Spring Boot provides auto-configuration for Spring MVC that works well with most applications. The auto-configuration adds the following features

Springboot学习05-自定义错误页面完整分析

Springboot学习06-自定义错误页面完整分析 前言 接着上一篇博客,继续分析Springboot错误页面问题 正文 1-自定义浏览器错误页面(只要将自己的错误页面放在指定的路径下即可) 1-1-Springboot错误页面匹配机制(以404错误为例): 1-在模板引擎下:找templates/error/404.html;如果没有,则继续匹配 2-在模板引擎下:找templates/error/4XX.html;如果没有,则继续匹配 3-在静态资源下:找static/error/404.

尚硅谷springboot学习14-自动配置原理

配置文件能配置哪些属性 配置文件能配置的属性参照 自动配置的原理 1).SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration 2).@EnableAutoConfiguration 作用: 利用EnableAutoConfigurationImportSelector给容器中导入一些组件? 可以查看selectImports()方法的内容: List<String> configurations = getCandidateConfi

SpringBoot学习- 8、整合Shiro

Shiro是什么,引自百度百科:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序. 关于Shiro网上讲的很多,以下代码是来自网上几篇博客文章的代码集成, 下面是集成步骤 1.pom.xml添加以下内容 <dependency> <groupId>org.apache.shiro</groupId> <

0.SpringBoot学习内容

一.SpringBoot学习内容 什么是SpringBoot 如何编写yaml 自动装配原理(重要) 集成web开发:业务的核心 集成数据库Druid 分布式开发:Dubbo + Zookeeper swagger:接口文档 任务调度 SpringSecu:Shiro 原文地址:https://www.cnblogs.com/zhihaospace/p/12343930.html

SpringBoot学习helloworld

这几天开始学习springBoot记录一下(Hello World) pom.xml 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o