11-30 SpringBoot2

news/2024/7/6 3:36:36

热部署

开发过程中,修改代码,不需要重启,自动更新

项目上线,一定要关闭

SpringBoot热部署的实现??

ideal默认阻止class类更新

2.需要手动构建项目,可以使用快捷键激活此功能ctrl + F9  / build project

自动构建项目

允许程序运行时自动构建

推荐:使用手动更新


项目上线关闭:

1.删除spring-boot-devtools依赖

2.SpringBoot全局配置

SpringBoot的配置文件

Springboot提供的自动配置,需要参数只能程序员提供, SpringBoot配置参数允许配置方:式

从上往下:优先级从低到高,

11配置的 会覆盖3的 比如说端口

命令行的方式设置参数,由于优先级的关系,会直接覆盖第三步直接在外部命令行就可以设置了

不是项目内部配置的8080端口

实现运维的参数外部更改  方便后续yaml文件,yml文件是同一类型文件,只是后缀名不一样

系统配置文件

分为三类

1.properties

2.yaml

3.yml

yaml文件,yml文件是同一类型文件,只是后缀名不一样

properties文件:语法: key=value
每一个key/value独占一行

语法简单 如果key一样 重复写 没有缩进格式

yml文件:

大小写敏感
属性层级关系使用多行描述,每行结尾使用冒号结束使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)#号表示注释

password:后面敲一个空格

yml:

properties:

yml和properties转换:

SpringBoot允许都在文件存在, yml与properties,yaml共存

1.每个文件中配置项不一样.把这个文件所有的配置项组合在一起

如果有两个端口?9090和8080

yml我如果加一个9090

如果没有提示?

三个配置,依旧以8090为准

注释yaml的端口 以yml为准 9090  然后最后是properties

怎么读取这些数据呢?(重点)

1.如果配置参数写在application.yml/properties不需要手动加载文件, springboot自动加载文件2。如果配置参数写在非application.yml/properties文件中,需要手动加载文件,通过
@PropertySource("data.yml")

第一种方式:读取单个值: @Value注解

@Value只能注入一个值  缺陷哦

第二种方式:

SpringBoot提供了一个对象,能够把所有的数据都封装到这一个对象中,这个对象叫做Environment

读取整个的对象数据(多个值)

数组也能注入:

读取某个对象属性注释ConfigurationProperties("stu1")

或者单个单个的来读

注意事项:
随机值,在程序启动的时候,生成的,把这个值提供$表达式
每次获取这个值,是固定的值

多环境配置(运维)

项目经过多种环境下运行,开发者在开发项目的时候,直接在开发者电脑上运行,这个环境称为开发环境,测试人员对项目进行测试,项目部署在测试服务器上,这个环境称为测试环境,项目开发完成,测试通过,项目.上线部署,这个环境称为生产环境

这些环境配置肯定是不一样,比如数据库参数,缓存参数...如果是让运维人员使用配置外部化,需要在命令行使用-写很多的配置参数名,,很麻烦,容易出错
SpringBoot提供了多环境配置,由开发者在开发阶段,就为不同环境提供不同的配置,根据项目在那个环境运行,激活那个环境配置
多环境配置:
 yml配置文件:

mybatis:
  mapper-locations: classpath*:mapper/*Mapper.xml
  type-aliases-package: com.huse.springbootbookshop.entity
pagehelper:
  helper-dialect: mysql
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    password: root
    url: jdbc:mysql://localhost:3306/book_shop?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
 

yml方式

yml配置文件:
。第一种方式,在一个配置文件中(application.yml)编写多个环境配置
。第二种方式:多文件配置每一个环境对应一个配置文件 推荐
properties配置文件:多文件配置每一个环境对应一个配置文件 推荐

命名规范: 生成环境: prod  测试环境: test     开发环境: dev

生产环境,测试环境,开发环境三个环境由4个配置:

  • 三个环境的配置文件
  • 主配置文件: application.yml  公共配置

(改pom 本版 jdk)  改成yml格式配置文件

多文件配置

properties配置文件:多文件配置每一个环境对应一个配置文件 推荐
与yml的多文件是一样,文件后缀名为properties

application.properties

激活: spring.profiles.active=XX

application-dev.propertieso

application-test.properties

application-prod.properties

SpringBoot日志记录

开发中,打印一些内容,使用日志输出,不要使用System.out.printin()lombok插件:在类上使用@Slf4j注解,自动给类注入一个log(日志对象)

SpringBoot默认使用日志框架: logback

日志的级别:

定义log日志输出级别

 


http://lihuaxi.xjx100.cn/news/1854147.html

相关文章

leetcode 18. 四数之和(优质解法)

代码&#xff1a; class Solution {public List<List<Integer>> fourSum(int[] nums, int target) {List<List<Integer>> listsnew ArrayList<>();int lengthnums.length;Arrays.sort(nums);for(int i0;i<length-4;){for(int ji1;j<lengt…

1657.确定两个字符串是否接近

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;1657. 确定两个字符串是否接近 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 当一个字符串中出现的字符全部在另一个字符串中出现并且 两字符串各字符出现次数排序后的 有序序列相同 时&a…

NX二次开发UF_MTX2_vec_multiply 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX2_vec_multiply Defined in: uf_mtx.h void UF_MTX2_vec_multiply(const double vec [ 2 ] , const double mtx [ 4 ] , double vec_product [ 2 ] ) overview 概述 Returns…

Spring Security OAuth2之认证服务、资源服务、web安全配置服务加载优先级详解

order的值越小&#xff0c;类的优先级越高&#xff0c;IOC容器就会优先加载&#xff0c;上面的优先级是&#xff1a;认证服务器配置&#xff08;0&#xff09;>资源服务器配置&#xff08;3&#xff09;>web安全服务配置&#xff08;100&#xff09;在做资源权限配置的时…

基于AT89C51单片机的电子闹钟设计

1&#xff0e;设计任务 利用AT89C51单片机为核心控制元件,设计一个电子闹钟&#xff0c;设计的系统实用性强、操作简单&#xff0c;实现了智能化、数字化。 &#xff08;1&#xff09;按开始键自动进入时间显示&#xff0c;开始为0&#xff0c;按K1键进入更改时间&#xff0c…

深信服技术认证“SCSA-S”划重点:SQL注入漏洞

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师…

SNAT、DNAT

一.NAT NAT: network address translation&#xff0c;支持PREROUTING&#xff0c;INPUT&#xff0c;OUTPUT&#xff0c;POSTROUTING四个链 请求报文&#xff1a;修改源/目标IP&#xff0c; 响应报文&#xff1a;修改源/目标IP&#xff0c;根据跟踪机制自动实现 NAT的实现分…

深入学习redis-基于Jedis通过客户端操作Redis

目录 redis客户端&#xff08;JAVA&#xff09; 配置 引入依赖 建立连接 常用命令实现 get/set exists/del keys expire和ttl type 字符串&#xff08;String&#xff09; mget和mset getrange和setrange append incr和decr 列表&#xff08;list&#xff09; …