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

news2024/11/13 20:24:53

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/453280.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KDYZ-YM压敏电阻测试仪

一、概述 晶闸管的伏安特性是晶闸管的基本特性&#xff0c;这项特性的好坏&#xff0c;直接影响到器件在整机上的正常使用。因此&#xff0c;检测晶闸管的伏安特性在晶闸管器件的生产、经销及使用过程中都是十分重要的。 该测试仪的测试方法符合国标JB/T7624-94《整流二极管测试…

AI:人工智能领域AI工具产品集合分门别类(文本类、图片类、编程类、办公类、视频类、音频类、多模态类)的简介、使用方法(持续更新)之详细攻略

AI&#xff1a;人工智能领域AI工具产品集合分门别类(文本类、图片类、编程类、办公类、视频类、音频类、多模态类)的简介、使用方法(持续更新)之详细攻略 导读&#xff1a;由于ChatGPT、GPT-4近期火爆整个互联网&#xff0c;掀起了人工智能相关的二次开发应用的热潮&#xff0c…

MySQL 的 Replace into 与 Insert into on duplicate key update 真正的不同之处

相同点&#xff1a; &#xff08;1&#xff09;没有key的时候&#xff0c;replace与insert .. on deplicate udpate相同。 &#xff08;2&#xff09;有key的时候&#xff0c;都保留主键值&#xff0c;并且auto_increment自动1。 不同点 有key的时候&#xff0c;replace是dele…

Python数据结构与算法-RAS算法(p96)

一、RSA加密算法简介 1、加密算法概念 传统密码: 加密算法是秘密的 现代密码系统:加密算法是公开的&#xff0c;密钥是秘密的&#xff1b;&#xff08;密钥可能是随机生成的&#xff0c;与他人不一致&#xff09; 对称加密—加密和解密用的同一个密钥 非对称加密—加密和解密用…

Kali下部署-Nessus漏扫工具

Nessus 是全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。 特点&#xff1a; 1、提供完整的电脑漏洞扫描服务&#xff0c;并随时更新漏洞库。 2、可以在本机或者是远端上进行遥控&#xff0c;进行系统的漏洞扫…

深入理解AMQP协议

一.AMQP 是什么 AMQP&#xff08;Advanced Message Queuing Protocol&#xff0c; 高级消息队列协议&#xff09;是一个提供统一消息服务的 应用层标准高级 消息队列协议&#xff0c;是 应用层协议的一个 开放标准,为面向消息的中间件设计&#xff0c;是一个进程间传递 异步消息…

线性模型的介绍

一、背景 在一个理想的连续世界中&#xff0c;任何非线性的东西都可以被线性的东西来拟合&#xff0c;所以理论上线性模型可以模拟物理世界中的绝大多数现象。 线性模型&#xff08;Linear Model&#xff09;是机器学习中应用最广泛的模型&#xff0c;指通过样本特征的线性组…

生产力提速增效的4大敲门砖

引言&#xff1a; 本文章将分四大板块介绍提高程序员生产力的方案&#xff0c;最大化利用你的IDE &#xff0c;其中Live Template篇&#xff0c;插件篇非常值的一看&#xff0c; 用好才能提速增效 Productity Guide篇 Postfix Completion篇 Live Template篇 插件篇 Product…

NGFW的protal认证实验

实验topo 用到工具&#xff1a;ensp&#xff0c;kali&#xff0c;cloud云的网段是192.168.43.0&#xff1b;连接cloud的g0/0/0地址就是你登录web&#xff0c;protal的地址 实验说明&#xff1a;建议不在真机上面配置直接用&#xff0c;因为真机不稳定。这里用kali当真机&#x…

【网络应用开发】实验5—— JDBC数据库访问与DAO设计模式

目录 JDBC数据库访问与DAO设计模式预习报告 一、实验目的 二、实验原理 三、实验预习内容 1. JDBC常用的类对象与接口有哪些&#xff1f;它们的功能如何&#xff1f; 2.使用数据源访问数据库的基本思想是什么&#xff1f;这样做有什么好处&#xff1f; 3.什么是DAO&am…

vscode使用虚拟环境

我的conda没有添加入path&#xff0c;每次打开总是报错 一、选择对应虚拟环境的解释器 1.点击vscode的右下角这里 2.点击后可能会在vscode上方出现下图样子&#xff0c;如果出现下图&#xff0c;则点击第二项Select at workspace level&#xff0c; 3.接着出现下图样式&#…

2022年营收破百亿,零跑汽车展现超强实力

此前&#xff0c;零跑已正式公布了2022年的财务数据。可以看到&#xff0c;零跑去年的营收破百亿&#xff0c;增速将近300%&#xff0c;这一成绩在汽车界是相当优越的。说到为何零跑能够实现如此快速的成长&#xff0c;那就不得不提其全域自研的核心优势。 如今&#xff0c;无论…

有始有终的编码原则

基本情况 在程序员的修炼之道之中&#xff0c;说到&#xff1a; 这个建议能简单地应用到大多数场合。简单说就是&#xff0c;分配资源的函 数或对象&#xff0c;对释放资源应负有责任。 这其实就是我们常说的谁分配的就谁负责释放&#xff0c;这也是内存释放的一个原则&#x…

微搭低代码实现投票功能

经常有一类需求&#xff0c;就是投票的功能&#xff0c;需要限制每一个选项每个人只可以投一票&#xff0c;投完之后需要统计票数。本篇教程我们讲解一下如何利用微搭低代码工具来实现投票功能。 1 设计数据源 我们需要设计一个数据源来记录用户的投票&#xff0c;如何限制用…

Docker网络模式详解

文章目录 一、docker网络概述1、docker网络实现的原理1.1 随机映射端口( 从32768开始)1.2 指定映射端口1.3 浏览器访问测试 二、 docker的网络模式1、默认网络2、使用docker run 创建Docker容器时&#xff0c;可以用--net或--network 选项指定容器的网络模式 三、docker网络模式…

代码审计实战3-android java

jks java keystore 作用&#xff1a;保证应用的唯一性 简介&#xff1a;可以理解为java的密钥库&#xff0c;是一个用来存放密钥和证书的仓库。 &#xff08;而keytool就是密钥和证书的管理工具&#xff0c;它把key&#xff08;密钥&#xff09;和certificate&#xff08;证…

一零五六、Jsp+mysql 实现学生选课系统(附源码及数据库)

目录 实现效果 项目代码 数据库 结语 实现效果 login.jsp index.jsp course_query.jsp course_selection.jsp course_withdraw.jsp selection_query.jsp 项目代码 checkSelectionStatus.jsp % page contentType"text/html;charsetUTF-8" language"java&q…

图像处理:均值滤波算法

目录 前言 概念介绍 基本原理 Opencv实现中值滤波 Python手写实现均值滤波 参考文章 前言 在此之前&#xff0c;我曾在此篇中推导过图像处理&#xff1a;推导五种滤波算法&#xff08;均值、中值、高斯、双边、引导&#xff09;。这在此基础上&#xff0c;我想更深入地研…

4月23号软件更新资讯合集.....

微软发布 Web 渲染引擎 Babylon.js 6.0 Babylon.js 是一个强大、简单、开放的游戏和 Web 渲染引擎&#xff0c;并被封装在一个友好的 JavaScript 框架中。 Babylon.js 6.0 带来了性能改进、渲染增强和一系列新功能。 新物理插件 Havok 团队通过一个特殊的新 WASM 插件和对 Ba…

sar基本命令格式操作及使用方法学习笔记

目录 SAR说明Centos7安装Sar命令sar命令显示时间改为24小时制查询某天某个时间段内的数据 SAR说明 sar是一个采集&#xff0c;报告和存储计算机负载信息的工具。自下载安装好后每10分钟对系统性能进行一次采集&#xff0c;每天的日志文件保存再/var/log/sa/下&#xff0c;sa17…