springboot自学之路-05(springboot的参数设置)

获取到外界给应用传递的参数的方法(优先级从高到低):
1.命令行参数;
2.servletConfig和servletContext
3.操作系统环境变量
4.application-{profile}.Properties或者yaml文件
5.application.Properties或者yaml文件。

一、通过 ApplicationArguments可以获取到外界给应用传递的参数

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @Package: com.example.demo
 * @ClassName: HelloController
 * @Description: 

Description:

* @author: zq * @since: 2020/5/1 11:45 * @version: 1.0 * @Copyright: 2020 zq. All rights reserved. */ @Controller public class HelloController { //获取到外界给应用传递的参数 @Autowired ApplicationArguments applicationArguments; //获取到外界给应用传递的参数的方法(优先级从高到低): /*1.命令行参数; 2.servletConfig和servletContext 3.操作系统环境变量 4.application-{profile}.Properties或者yaml文件 5.application.Properties或者yaml文件*/ @RequestMapping("/hello") @ResponseBody public String helloPage() { System.out.println(applicationArguments.getNonOptionArgs()); return "hello" + applicationArguments.getNonOptionArgs(); } }

springboot自学之路-05(springboot的参数设置)_第1张图片

访问 http://localhost:8083/hello 获取到输入参数

 

二、通过application.Properties或者yaml文件获取

springboot提供了方便的propeties绑定机制:
默认从application.properties中加载配置
资源文件(application.properties)的加载顺序
1.当前目录/config子目录
2.当前目录
3.classpath下的/config子目录
4.classpath

比如我们先在resources下创建application.properties文件

#springboot提供了方便的propeties绑定机制:
#默认从application.properties中加载配置
#资源文件(application.properties)的加载顺序
#1.当前目录/config子目录
#2.当前目录
#3.classpath下的/config子目录
#4.classpath
#设置应用访问的端口号
server.port=8084
#设置应用请求的路径前缀
server.servlet.context-path=/

#可以通过(只能通过命令行参数配置--spring.config.name)
#spring.config.name 配置配置文件名称
#spring.config.location 配置配置文件具体加载地址

springboot启动时会自动从这个文件里面获取参数,比如server.port=8084就是把启动端口号设置成8084,server.servlet.context-path=/是设置应用请求的路径前缀等等。注意优先级高的和优先级低的properties文件同时存在时,同时存在的参数,优先级高的会覆盖低的,不同时存在的参数会进行组合。

注意,一般在IDE里面运行是需要将配置文件的名字写成application.properties或者application.yml的,但是如果想更改文件名也是可以的,比如我就想将其命名为application666.properties也是可以的,但是只能在命令行里面这样操作。

比如我们新建application666.properties文件,然后通过package进行打jar包。

springboot自学之路-05(springboot的参数设置)_第2张图片

springboot自学之路-05(springboot的参数设置)_第3张图片

可以看到现在使用的是application666.properties文件设置的端口号:8085

你可能感兴趣的:(Spring,Boot自学系列,springboot,参数设置)