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

springboot入门

搞掉了手动的spring,mybatis,springmvc配置类,只需要创建一个控制类即可
在这里插入图片描述
控制类:

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 "再一次!好?";
    }
}

运行:
在这里插入图片描述
结果:
在这里插入图片描述
上图中看出端口号为8080,这里的路径不用写项目名称(和之前的ssm不同):
http://localhost:8080/books/1
在这里插入图片描述
简易版运行springboot项目,不用idea:
先打包jar包;
在这里插入图片描述
然后在文件中的target中可以找到jar包:
在这里插入图片描述
直接在当前的路径框中输入cmd,跳转至命令行,再输入java -jar jar包名
在这里插入图片描述

在这里插入图片描述
结果和用了idea的一样,都可以通过路径访问:http://localhost:8080/books/1
在这里插入图片描述

yaml数据格式

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

注: 二三中格式中的参数前面须加空格如:port: 80
根据缩进的多少来确定等级
具体看下图
在这里插入图片描述

三种格式不同:
一:

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: 81

ent:
  name: 阿三
  age: 15
  ai:
    --- 三
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;
    }

    @Override
    public 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中
    @Autowired
    private Environment environment;

//   方式三: 封装进系定义类entry中
    @Autowired
    private 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 "再一次!好?";
    }
}

第一种详解:
在这里插入图片描述
第二种详解:
在这里插入图片描述

第三种详解:
在这里插入图片描述

注意:

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

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

多环境配置

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

  • .yaml.yml配置文件:

如果输入profile等之后,idea没有提示,则需要在设置里面设置一下
在这里插入图片描述

在这里插入图片描述

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

spring:
  profiles:
    active: test

---
spring:
  profiles: pro
server:
  port: 8080
---
spring:
  profiles: dev
server:
  port: 8081
---
spring:
  profiles: test
server:
  port: 8082
  • .properties文件:
    在这里插入图片描述

分为主文件和分类文件:
在这里插入图片描述

主文件:

spring.profiles.active=dev

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

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

命令行启动参数设置

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

spring:
  profiles:
    active: test

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

各种位置的配置的覆盖等级:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值