> 文章列表 > springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

springboot入门

搞掉了手动的spring,mybatis,springmvc配置类,只需要创建一个控制类即可
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
控制类:

package com.itjh.controller;import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/books")
public class BookController {@GetMapping("/{id}")public String getById(@PathVariable Integer id){System.out.println("ID======》》》"+id);return "再一次!好?";}
}

运行:
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
结果:
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
上图中看出端口号为8080,这里的路径不用写项目名称(和之前的ssm不同):
http://localhost:8080/books/1
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
简易版运行springboot项目,不用idea:
先打包jar包;
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
然后在文件中的target中可以找到jar包:
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
直接在当前的路径框中输入cmd,跳转至命令行,再输入java -jar jar包名
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
结果和用了idea的一样,都可以通过路径访问:http://localhost:8080/books/1
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

yaml数据格式

  • 创建springboot项目时,自动生成的.properties文件
  • .yml文件
  • .yaml文件

注: 二三中格式中的参数前面须加空格如:port: 80
根据缩进的多少来确定等级
具体看下图
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

三种格式不同:
一:

server.port=80

二:

#server:
#  port: 81

三:

server:port: 82

三种格式的文件都进行了配置,则采取哪个呢?按照一二三的顺序进行

日志:root后面的参数不同,运行程序之后的结果也不同

只显示运行成功:

logging:level:root: warn

显示端口号等基础的日志:

logging:level:root: info

显示所有的日志:

logging:level:root: debug

读取yaml型数据

三种方式

  • 直接读取
  • 封装进Environment来读取数据
  • 封装进自定义的pojo类中进行读取数据

三种方式如下:

只用控制类:

  • 第一种方式利用注解@Value即可
  • 第二种方式只需要创建Environment对象,并且加上自动装配注解即可

实体类和控制类:

  • 第三种方式需要先创建一个实体类,其中的属性分别对应配置文件中的属性,再在控制了中直接打印实体类的对象
server:port: 81ent:name: 阿三age: 15ai:--- 三
logging:level:root: info

第三种方式中的实体类:

package com.itjh.pojo;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Arrays;@Component
@ConfigurationProperties(prefix = "ent")
public class entry {private String name;private int age;private String[] ai;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String[] getAi() {return ai;}public void setAi(String[] ai) {this.ai = ai;}@Overridepublic String toString() {return "entry{" +"name='" + name + '\\'' +", age=" + age +", ai=" + Arrays.toString(ai) +'}';}
}

三种方式的控制类如下:看注释

package com.itjh.controller;import com.itjh.pojo.entry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/books")
public class BookController {
//    方式一,用 注解@Value@Value("${ent.name}")private String name;@Value("${ent.age}")private Integer age;@Value("${ent.ai[2]}")private String gg;//   方式二: 封装进Environment中@Autowiredprivate Environment environment;//   方式三: 封装进系定义类entry中@Autowiredprivate entry entry;@GetMapping("/{id}")public String getById(@PathVariable Integer id){System.out.println("ID======》》》"+id);
//        第一种方式System.out.println("名字:"+name);System.out.println("年龄:"+age);System.out.println("爱好:"+gg);System.out.println("_______________________________________");
//        第二种方式System.out.println("姓名:"+environment.getProperty("ent.name"));System.out.println("年龄:"+environment.getProperty("ent.age"));System.out.println("爱好之一为:"+environment.getProperty("ent.ai[1]"));System.out.println("___________________________________________");
//        第三种方式System.out.println(entry);return "再一次!好?";}
}

第一种详解:
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
第二种详解:
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

第三种详解:
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

注意:

实体类上面如果爆红,就在pom.xml文件中加入:

   <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>

多环境配置

不同的情况所需要的端口号等等都是不一样的:测试用的,上线之后用的等…

  • .yaml.yml配置文件:

如果输入profile等之后,idea没有提示,则需要在设置里面设置一下
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

代码实现:最终端口号是8082

spring:profiles:active: test---
spring:profiles: pro
server:port: 8080
---
spring:profiles: dev
server:port: 8081
---
spring:profiles: test
server:port: 8082
  • .properties文件:
    springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

分为主文件和分类文件:
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置

主文件:

spring.profiles.active=dev

三个分类文件(根据包的顺序):最终结果用的是8080

server.port=8080
server.port=8082
server.port=8081

命令行启动参数设置

打包成jar包之后,依然可以设置配置类中的参数:打包前最好先clean一下
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
然后在文件夹中的路径上输入cmd打开命令行窗口(这里设置了选择哪一个端口,这里的配置优先级高于jar包中的配置,就是覆盖了):输入java -jar springboot01-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置
上面的是根据自己建的配置类来设置的,当然,没有自己创建的也可以:

spring:profiles:active: test---
spring:profiles: pro
server:port: 8080
---
spring:profiles: dev
server:port: 8081
---
spring:profiles: test
server:port: 8082

各种位置的配置的覆盖等级:
springboot入门和yaml数据格式和读取yaml型数据和多环境配置和命令行启动参数设置