【SpringBoot】项目属性配置

简介: 【SpringBoot】项目属性配置

简单的介绍一下SpringBoot的属性配置。


继续上节的博客喔、


配置application.properties文件:


#第一种配置方式
#这种配置方式每个属性名都必须写完整
server.port=8081
#配置端口
server.context-path=/hello
#配置项目路径

可以跑一下看看,这个时候访问项目就路径需要增加/hello项目名了。

而且端口是8081,默认的是8080


进行第二种配置方式之前,先删除application.properties文件

我就不删除了,我重命名为application.txt文件了,建议你删除,选择第二种配置方式即可


第二种配置方式-推荐


在resource目录下新建文件:application.yml

server:
  port: 8081
#  :号后面必须有空格
  context-path: /hello


这个配置就方便很多,不用全名了。

有个注意事项,请看代码中的注释


运行结果和第一种配置方式是一样的


进行自定义的配置变量


例如增加:


server:
  port: 8082
#  :号后面必须有空格
  context-path: /hello
name: 陈浩翔
age: 20


我们不需要在这里配置变量类型,只要在注入的时候写好属性类型即可

我们使用的是 @Value注入

在代码中读取配置:

package cn.chenhaoxiang;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2017/12/25.
 * Time: 下午 9:44.
 * Explain:
 */
@RestController
public class HelloController {
    @Value("${name}")//这个变量读取写法有点像jsp读取session的
    private String name;
    @Value("${age}")
    private Integer age;
    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String say() {
        return "Hello Spring Boot!";
    }
    @RequestMapping(value = "/info",method = RequestMethod.GET)
    public String info() {
        return name+","+age;
    }
}


还可以在配置中使用配置,我们可以在配置文件中这么写:


info: "name:${name},age:${age}"


这样就可以在配置中引用name的值和age的值


有没有发现上面的配置方式有点麻烦,如果我有很多属性,岂不是要写很多读取和写嘛

放心,肯定有简便方式的,这个时候我们可以选择用类来封装


我们定义一个People类。

有年龄,姓名,地址属性

接下来看代码吧,代码说明一切

package cn.chenhaoxiang;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2017/12/25.
 * Time: 下午 9:58.
 * Explain:
 */
@Component //注入Bean需要
@ConfigurationProperties(prefix = "people")//获取前缀是people的配置
public class People {
    private String name;
    private Integer age;
    private String address;
    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 String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "People{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}


到配置中配置People的值:

people:
  name: chx
  age: 20
  address: 长沙• 1
• 2
• 3
• 4

HelloController.java

我们可以这样注入People的Bean:

@Autowired
    private People people;
@RequestMapping(value = "/people",method = RequestMethod.GET)
public People people() {
    return people;
}//返回的是对象的JSON字符串


我们看输出:



动态配置


比如我们开发的时候和发布的时候使用的数据库地址不同,我们可以这样配置


新建两个配置文件,分别为:

application-dev.yml 开发使用

application-prod.yml 发布使用


默认的配置文件中的内容可以删除了。写上:

application.yml


spring:
  profiles:
    active: dev


修改application-dev.yml中的值,和application-prod.yml不同即可,这个时候可以运行项目,打开链接,可以看到people的值是dev文件的内容

你可以将dev改成prod,配置内容即是prod文件中的内容


但是这样还不是动态,因为我们需要每次改变application.yml中的值。

所以我们可以这样做,用上篇博客的启动方式

也就是java -jar的启动方式


首先编译一下:


mvn install


然后运行:


java -jar target/hello-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod


后面带上动态参数即可


源代码下载地址:

GITHUB源码下载地址: 点我进行下载


目录
打赏
0
0
0
0
988
分享
相关文章
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
149 64
SpringBoot项目打war包流程
SpringBoot项目打包成war包
通过上述步骤,我们成功地将一个Spring Boot应用打包成WAR文件,并部署到外部的Tomcat服务器中。这种方式适用于需要与传统Servlet容器集成的场景。
25 8
|
1月前
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
152 36
SpringBoot start.aliyun.com创建项目,解决properties乱码的问题
通过确保文件和开发环境的编码一致,配置 Maven 编码,设置 Spring Boot 应用和嵌入式服务器的编码,可以有效解决 properties 文件的乱码问题。以上步骤可以帮助开发者确保在 Spring Boot 项目中正确处理和显示多语言字符,避免因编码问题导致的乱码现象。
40 5
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
175 1
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
82 8
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
83 2
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
77 2
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
79 1
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
55 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等