当前位置: 首页 > news >正文

7、SpringBoot_高级配置

一、配置高级

1.临时属性设置

1.1引出问题

  • 如果目标电脑上8080端口已经使用,再次使用该端口会出现端口占用问题

    在这里插入图片描述

  • 解决方式

    • 重新更换配置文件修改端口打包
    • 通过临时属性配置新端口
    • 更换配置文件

1.2添加临时属性配置

  • 通过临时属性修改8080端口

    java -jar 项目.jar --server.port=8081
    
  • 添加web部分使用 dbug 日志

    java -jar springboot-ssm-0.0.1-SNAPSHOT.jar --server.port=8081 --logging.level.org.springframework.web=debug
    java -jar springboot-ssm-0.0.1-SNAPSHOT.jar --server.port=8081 --logging.level.root=debug
    
  • 可以分别对rootwebhibernate进行临时日志设置
    在这里插入图片描述

2.属性加载优先级

  • 文档地址

    https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config

  • 优先级说明

    在这里插入图片描述

  • 注意:从上往下优先级越来越高

    • 开发中使用的是3,刚才使用命令行使用的是11

    • 在开发中,会遇见自己定义属性名和系统变量名一致的情况,导致自己配置的数据被覆盖

      user:name: sy
      
    • 实际取出来值是电脑用户名称值

      在这里插入图片描述

    • 以后如果你们再开发中,自己定义变量但是发现取出来的不是想要的值时,优先考虑属性优先级问题

3.开发环境使用临时属性设置

  • 设置主流方式步骤
    在这里插入图片描述

  • 了解内容

    public static void main(String[] args) {args[0] = "--server.port=9999";SpringApplication.run(SpringbootSsmApplication.class, args);
    }
    
  • 问题:如果需要修改的配置很多,那么使用这种手动输入的方式很容易出错,可以通过配置文件解决

4.配置文件分类

  • 类路径下配置文件
    • 开发人员使用
  • 类路径下config目录下配置文件
    • 项目经理、技术经理使用
  • 程序包所在目录中配置文件
    • 运维人员、架构师使用
  • 程序包所在目录中config目录下配置文件
    • 最高等级,技术总监
  • 应用场景
    • A 开发项目时候使用的是类路径下配置文件
    • A 开发完成之后,需要部署到测试环境,需要修改配置
    • 测试B测试出问题,A 需要去修改bug(需要把配置修改回来)
    • 测试没问题之后,A需要再次修改生产环境的配置

4.1类路径下配置文件

  • 类路径下配置文件:就是我们默认使用的配置文件,优先级是最低

    在这里插入图片描述

4.2类路径下config目录下配置文件

  • 类路径下config目录下配置

    在这里插入图片描述

4.3程序包所在目录中配置文件

  • 程序包所在目录中配置文件

    在这里插入图片描述

4.4程序包所在目录中config目录下配置文件

  • 程序包所在目录中config目录下配置文件

    在这里插入图片描述

4.5通过临时变量设置配置文件

  • 通过名称设置图示

    在这里插入图片描述

  • 通过具体路径设置具体文件

    在这里插入图片描述

5.@ConfigurationProperties

5.1.回顾基础使用

  • 绑定类

    @Data
    @Component
    @ConfigurationProperties(prefix = "dbconfig")
    public class DbConfig {private String url;private String username;
    }
    
  • 配置文件

    dbconfig.url=123123
    dbconfig.username=sy
    
  • 加入如下的依赖,可以解决提示问题

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

5.2配置第三方类

  • 配置德鲁伊连接池

    <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.15</version>
    </dependency>
    
  • 配置三方bean

    @Bean
    @ConfigurationProperties(prefix = "druid")
    public DruidDataSource dataSource(){DruidDataSource druidDataSource = new DruidDataSource();return druidDataSource;
    }
    

6.宽松绑定/松散绑定

  • 如果你这样配置会报错

    @Component
    @ConfigurationProperties(prefix = "dbConfig")
    public class DbConfig {private String url;private String username;
    }
    
  • 报错如下

    在这里插入图片描述

  • 宽松绑定

    dbConfig.url=123123
    dbConfig.user_name=sy
    db-config.PASSWORD=12345223123
    db-config.home-address=bj
    
    @Data
    @Component
    @ConfigurationProperties(prefix = "db-config")
    public class DbConfig {private String url;private String username;private String password;private String homeAddress;
    }

7.常用计量单位绑定

  • 配置时间需求

    db-config.timeout=600
    
  • 使用 Duration 表示时间

    @DurationUnit(ChronoUnit.HOURS)
    private Duration timeout;
    
  • 使用DataSize来表示空间

    @DataSizeUnit(DataUnit.MEGABYTES)
    private DataSize datasize;
    

8.检验

  • 导入依赖

    <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId>
    </dependency>
    
  • 检验配置如下

    @Max(value = 9999,message = "无效的配置")
    @Min(value = 80,message = "无效的配置")
    private int port;
    

9.数据类型转换

  • 之前学生出现的一个问题

    在这里插入图片描述

  • 他的密码 010101

    在这里插入图片描述

  • 配置文件中,可以通过引号的方式解决

  • boolean 类型直接使用 true / false

相关文章:

7、SpringBoot_高级配置

一、配置高级 1.临时属性设置 1.1引出问题 如果目标电脑上8080端口已经使用&#xff0c;再次使用该端口会出现端口占用问题 解决方式 重新更换配置文件修改端口打包通过临时属性配置新端口更换配置文件 1.2添加临时属性配置 通过临时属性修改8080端口 java -jar 项目.jar…...

cocos2dx查看版本号的方法

打开文件&#xff1a;项目根目录\frameworks\cocos2d-x\docs\RELEASE_NOTES.md 知道引擎版本号的意义&#xff1a; 1.面试中经常被问到(面试官想知道你会不会查版本号&#xff0c;你会查也不一定会去看&#xff0c;如果你去看了说明你是一个有心人&#xff0c;或者想深入研究下…...

某高校的毕设

最近通过某个平台接的单子&#xff0c;最后Kali做的测试没有公开可以私聊给教程。 下面是规划与配置 1.vlan方面&#xff1a;推荐一个vlan下的所有主机为一个子网网段 连接电脑和http客户端的接口配置为access接口 交换机与交换机或路由器连接的接口配置为trunk接口---也可以…...

利用uvicorn、Starlette和pipeline将一个训练好的大模型发布成一个web服务

技术名词&#xff1a; 1、Starlette&#xff1a; 它是一个轻量级、高度可用性和可扩展性的Web框架&#xff0c;它专门为异步应用程序设计。 Starlette基于Python 3.6的异步/协程语法&#xff0c;具有快速响应性能和低延迟。你可以将它理解为Java的Spring。 安装&#xff1a;…...

贝赛尔曲线 - Vue3实现加入购物车抛物线效果组件

贝赛尔曲线 - Vue3实现加入购物车抛物线效果组件&#xff08;可连续多个动画&#xff0c;动态回收DOM&#xff09; 前言 在前几天的一次迭代中&#xff0c;我遇到了这么一个需求&#xff0c;模仿支付宝首页应用中心的编辑功能&#xff0c;支持编辑首页展示的应用&#xff0c;…...

AddressSanitizer failed to allocate 0xdfff0001000 (15392894357504) bytes解决方法

打开一个编译选项启用ASan的程序&#xff1a; AddressSanitizer failed to allocate 0xdfff0001000 (15392894357504) bytes然后程序启动失败。 原因&#xff1a; [cfe-dev] Question about Clang/LLVM addresssanitizer /proc/sys/vm/overcommit_memory是一个用于控制内存…...

Fortinet 2023上半年全球威胁态势研究报告:勒索软件检测成下降趋势,针对性攻击持续升温

近日&#xff0c;专注于推动网络与安全融合的全球网络安全领导者Fortinet&#xff08;NASDAQ&#xff1a;FTNT&#xff09;&#xff0c;发布《2023上半年全球威胁态势研究报告》。报告显示&#xff0c;2023 年上半年勒索软件检出数量继续下降、高级持续性威胁&#xff08;APT&a…...

MySQL ——多表连接查询

一、&#xff08;左、右和全&#xff09;连接概念 内连接&#xff1a; 假设A和B表进行连接&#xff0c;使用内连接的话&#xff0c;凡是A表和B表能够匹配上的记录查询出来。A和B两张表没有主付之分&#xff0c;两张表是平等的。 关键字&#xff1a;inner join on 语句&#xf…...

前沿技术 --> 待定

一、可会可不会 1.1如何优雅的编写技术文档 网址&#xff1a; 如何优雅的编写技术文档&#xff1f; - YouTube...

Linux定时python脚本(crontab版本)

1.0 使用Linux系统命令 crontab 自带的定时命令2.0 crontab的使用 2.1 添加定时任务 crontab -e2.2 查看定时任务的完成情况 2.2.1 查看日志 tail -f /var/log/syslog | grep CRON 2.2.2 任务执行情况 grep CRON /var/log/syslog 2.3 定时任务的规则 每隔一分钟执行一次…...

修改 Ubuntu .cache 和 pip cache 默认路径

修改 Ubuntu .cache 和 pip cache 默认路径 非常不建议修改 .cache 默认路径&#xff0c;除非你知道修改后的影响。 执行下面命令进行修改&#xff0c; vi /root/.bashrc--- 追加 export XDG_CACHE_HOME/u01/.cache export PIP_CACHE_DIR/u01/.cache ---完结&#xff01;...

【Java SE】Lambda表达式

目录 ♫什么是Lambda表达式 ♫Lambda表达式的语法 ♫函数式接口 ♫Lambda表达式的使用 ♫变量捕获 ♫ Lambda表达式在集合中的使用 ♪Collection的foreach()&#xff1a; ♪List的sort()&#xff1a; ♪Map的foreach() ♫什么是Lambda表达式 Lambda 表达式是 Java SE 8中一个…...

Kafka-UI

有多款kafka管理应用&#xff0c;目前选择的是github上star最多的UI for Apache Kafka。 关于 To run UI for Apache Kafka, you can use either a pre-built Docker image or build it (or a jar file) yourself. UI for Apache Kafka is a versatile, fast, and lightweight…...

Unity 制作登录功能02-创建和链接数据库(SQlite)

国际惯例&#xff1a;先看效果 1.SQlite是一种嵌入型数据库 在Unity开发游戏时使用SQLite有多种原因&#xff0c;以下是其中一些主要原因&#xff1a; 嵌入式数据库&#xff1a;SQLite是一个嵌入式数据库引擎&#xff0c;这意味着它不需要单独的服务器进程。这使得使用SQLite非…...

算法 岛屿数量-(递归回溯)

牛客网 BM57. 二维矩阵&#xff0c;值为1表示岛屿&#xff0c;0表示海洋&#xff0c;求海洋中岛屿数量。 解题思路: 遍历二维数组&#xff0c;值为1增加岛屿数量记数&#xff0c;同时对此位置进行单独递归遍历上下左右4个方向&#xff0c;将数组坐标范围内同时值为1的元素置…...

安卓恶意应用识别(番外篇)(Python并行(多线程or多进程)执行cmd)

前言 本人为了批量反编译&#xff0c;不得不涉及到批量执行&#xff0c;之前没有彻底理解有关于多线程的概念和python方法&#xff0c;现在只能一步一步尝试&#xff0c;并且实践&#xff0c;写本文以记录。 1. 进程与线程 1.1 什么是进程&#xff1f; 1.1.1 概念 进程是一…...

基于大语言模型扬长避短架构服务

秘诀&#xff1a; 扬泛化之长&#xff0c; 避时延之短...

初识网络编程

一、概述 地球村&#xff1a;亦称世界村&#xff0c;是通过电子媒介将世界紧密联系起来的形象表达&#xff0c;是信息网络时代的集中体现 TCP和UDP&#xff1a; TCP&#xff1a;打电话 -->连接 -->接了 -->通话 UDP&#xff1a;发送完即可 -->接收 计算机网络&a…...

轻松使用androidstudio交叉编译libredwg库

对于安卓或嵌入式开发者而言,交叉编译是再熟悉不过的操作了,可是对于一些刚入门或初级开发者经常会遇到这样的问题:如何交叉编译C++库来生成安卓下的so库呢? 最近有一些粉丝找到我求救,那么我最近刚好有空大致研究了下,帮他们成功编译了其中一个libredwg的C++库,这篇文章…...

【C++杂货铺】一颗具有搜索功能的二叉树

文章目录 一、二叉搜索树概念二、二叉搜索树的操作2.1 二叉搜索树的查找2.2 二叉搜索树的插入2.3 二叉搜索树的删除 三、二叉搜索树的实现3.1 BinarySearchTreeNode&#xff08;结点类&#xff09;3.2 BinarySearchTree&#xff08;二叉搜索树类&#xff09;3.2.1 框架3.2.2 in…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)

引言 在嵌入式系统中&#xff0c;用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例&#xff0c;介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单&#xff0c;执行相应操作&#xff0c;并提供平滑的滚动动画效果。 本文设计了一个…...

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...