spring学习-工程的打包和运行,多层级配置以及多环境配置

SpringBoot中@ConfigurationProperties对于多层嵌套参数的正确加载方法 SpringBoot中@ConfigurationProperties对于多层嵌套参数的正确加载方法 今天想重构一下Kafka代码,将之前用@Value引入的一些参数全部替换掉,因为可读性和维护性太差,这是以前的样子。 @Value("${spring.kafka.bootstrap-servers}") private String servers; @Value("${sp... 阅读详情

1. 程序是怎么被打包的,怎么运行的

分windows环境下和Linux环境下。

1.2 程序为什么要打包

1.3 springboot的打包插件

1.4 windows版的打包和启动了解就好,因为后面都是在Linux下

2. 临时属性的设置

springboot属性的优先级是怎么算的
原来springboot程序在加载配置信息的时候有一个明确的加载优先顺序
配置文件 、开发环境 、 命令行 、
有风险

2.1 重点:实际开发中的属性涉及到安全保密问题

在这里插入图片描述

2.2 重点:实际开发中的属性涉及到安全保密问题

在这里插入图片描述

3. 多环境配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

springboot运维实用 用于自己复习,springboot程序的打包与运行,配置高级多环境开发,日志配置文件 阅读详情

相关推荐

生产级机器学习模型部署:从Notebook到Kubernetes的工程化实践

机器学习模型部署不是简单启动API服务,而是涵盖环境确定性、模型序列化、服务韧性、可观测性与安全治理的系统工程。核心在于解决Notebook开发与生产环境之间的鸿沟——包括Python版本漂移、依赖不一致、数据Schema突变、推理性能瓶颈等典型问题。ONNX作为跨框架中间表示,配合Triton推理服务器,显著提升模型可移植性与GPU利用率;gRPC替代REST实现低延迟高吞吐通信;结构化日志、Prometheus指标与Evidently数据漂移检测构成模型层监控基石。本文聚焦真实世界落地细节,覆盖Dock

379

SpringBoot中使用@ConfigurationProperties加载多层嵌套配置

SpringBoot中使用@ConfigurationProperties加载多层嵌套配置 日常项目开发中,经常遇到使用多级配置的情况,springboot中可以使用 @ConfigurationProperties 来加载。 网上看到有朋友的配置中,把内部类对象直接new出来,这种方法可能也可以成功,本人没试,毕竟使用spring的,再用new的话,总感觉差点意思啊,所以就自己试着配置了一下。 废话不多说,上正文。 先看效果: 配置文件内容: 程序输出日志: 从日志可以看出,配置文件中的多级参数,都被

码农搬砖盖大楼 1万+

大厂Python自动化测试面试题合集

题目:函数的作用是什么?调用函数的语法?答案:将独立功能代码封装成模块,复用代码;函数名(实参)。题目:函数 return 作用是什么?无 return 时函数返回什么?多返回值底层是什么类型?答案:返回函数执行结果;无 return 默认返回 None;return x,y,z 底层自动封装为元组。题目:函数四大参数类型分别是什么?定义顺序要求?答案:必选参数、默认参数、可变位置 * args、命名关键字、可变关键字 **kwargs;顺序:必选→默认→*args→命名关键字→**kwargs。

悦分享 104

SpringBoot项目多层级多环境yml设计

日志的多环境配置,我们可以新建一份logback-spring.xml文件。可以在例如application-dev.yml文件中配置logging.file.path。例如:日志的配置,Spring本身的配置以及MyBatis Plus相关的固定配置等等。application-dev.yml,配置一些和环境相关的配置,例如数据库的配置。applicaiton-basic.yml,配置一些与环境无关的基础固定复用配置。此时日志的路径就会分别读取不同环境配置的路径了。标签读取多环境yml中配置的路径。

他很懒,但也在努力的生活着 153

在 Windows 10 中通过 WSL2 安装 vLLM 部署本地大模型的方法和步骤

通过 WSL2 在 Windows 10 中部署 vLLM 的核心优势是兼顾 Windows 生态与 Linux 环境的 GPU 加速能力,适合需要在 Windows 下开发但依赖 vLLM 高性能推理的场景。相比原生 Windows 部署(Ollama 等工具),该方案性能更优(接近原生 Ubuntu),且支持更大模型和量化优化。若追求极致性能,建议直接使用 Ubuntu 系统;若必须依赖 Windows 工具链,WSL2 + vLLM 是当前最优选择。

当 AI 开始写文章、绘星空,甚至预测未来,您还在旁观吗?这里将剖开人工智能的思考逻辑,拆解 AI 创作的底层密码,也聊聊人工智能里的人文温度。每篇都有让你拍案的细节,快来解锁 AI 时代的神奇世界! 3755

abap中使用Screen painter为普通屏幕创建单选按钮组radiobutton组的过程

选择屏幕中,创建radiobutton组直接使用代码实现,如下所示 SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE TEXT-001. PARAMETERS R1 RADIOBUTTON GROUP GR1. PARAMETERS R2 RADIOBUTTON GROUP GR1. PARAMETERS R3 RADIOBUTTON GR

charliefromkansas的博客 8302

SpringBoot多环境配置及配置文件分类

一、多环境配置在工作中,对于开发环境、测试环境、生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线上环境的。来回的修改配置会很麻烦,而 SpringBoot 给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可。不同类型的配置文件多环境开发的配置都不相同,接下来对不同类型的配置文件进行说明1.1 yaml文件。

萌兔兔MMQ!! 2858

DDR March系列算法整理

一

不吃鱼的猫的博客 1万+

spring简单搭建运行

1、首先创建一个web项目文件路径按照自己喜好改变  选择打钩的地方 可以自动创建web.xml2、建一个studen类public class Student { public String uname; public int age; public String getUname() { return uname; } public void setUname(String un...

zs_is_me的博客 1749

【MM小贴士】关于SAP系统中关税的处理方式

的运费,这部分来讲,我们关税的计价基础,就应该是货物价值+包邮到中国港口的运费,完后进行报关操作,缴纳关税,后半段从中国港口拉回到企业里面的运输费,就会做到费用里面去,而不是计入到存货成本。1、我们自己的企业和国外厂家A购买一项物资,厂家A的报价会分成几个组成部分货物本身的价值或者货物本身的价值+到国外港口的运费或者货物本身的价值+到中国港口的运费或者货物本身的价值+包邮到你们自己企业的整体运费。所以我的关税就是不确定的。重点是运费是哪一段的运费,如何结算,结算的货币,何时能够确定运费。.........

竹大的博客 9029

GoPro官方API实战:从蓝牙配对到Wi-Fi流媒体,构建跨平台控制应用

本文详细解析了GoPro官方API的开发实践,涵盖蓝牙配对、Wi-Fi流媒体控制等关键技术。通过实战案例,指导开发者如何构建跨平台控制应用,解决设备发现、指令解析、视频流传输等核心问题,并分享Android平台迁移经验与常见问题排查方法。

weixin_30727835的博客 397

spring boot实用篇

工程打包与运行 打包插件 临时属性 配置文件4级分类 多环境开发(yaml版) 多环境分组管理 多环境开发控制 Maven与Spring Boot多环境冲突现象解决方案

Qgchun. 1358

物联网应用开发教程专栏介绍与说明——列表目录查阅(持续更新)

为方便查阅学习本专栏,特整理专栏介绍与说明及提供列表目录便于查阅。阿齐Archie《物联网应用开发教程》专栏。本专栏为物联网应用开发教程,将更新涵盖常见的WIFI、蓝牙、蜂窝网、以太网、Lora、NB-iot等物联网技术实战应用及详解其技术知识。专栏为技术文章,订阅一个文章即可本专栏内所有文章可看,实战开发,亲测无误,附视频演示效果,会持续更新本专栏。本专栏内有理论篇也有完整实战应用篇。

嵌入式阿齐Archie 2万+

SpringBoot项目在yml和properties文件中的属性配置

项目高级配置 ▶ 临时属性设置 ▶ 配置文件分类 ▶ 自定义配置文件 临时属性设置 ● 带属性数启动SpringBoot ● 携带多个属性启动SpringBoot,属性间使用空格分隔 ● 属性加载优先顺序 1.参看:https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config 1.使用jar命令启动SpringBoot工程时可以使用临时属性替换配置文件中的属性

weixin_46665411的博客 2687

《拉依达的嵌入式\驱动面试宝典》—操作系统篇(二)

《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选

拉依达不拉跨的博客 472

TensorFlow2深度学习实战(十四):目标检测算法 YOLOv4 解析

最易上手的【计算机视觉】小白教程!

不积跬步,无以至千里! 7636

springboot的学习(二):常用配置

springboot的各种常用的配置。配置文件不是application的时候,项目是找不到配置文件的。可以通过idea上的configurations设置配置文件名,也可以写路径,可以写多个,用逗号隔开。

weixin_45037073的博客 1154

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

spring boot运维基础笔记

通过启动参数加载配置文件(无需书写配置文件扩展名)通过启动参数加载指定文件路径下的配置文件时可以加载多个配置注意事项properties与ym1文件格式均支持单服务器项目: 使用自定义配置文件需求较低多服务器项目: 使用自定义配置文件需求较高,将所有配置放置在一个目录中,统一管理基于SpringCloud技术,所有的服务器将不再设置配置文件,而是通过配置中心进行设定,动态加载配置信息。

m0_46366470的博客 990

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SpringBoot运维实用篇

注意事项:当主环境dev与其他环境有相同属性时,主环境生效;其他环境中有相同属性时,最后加载的环境属性生效。(3)设置日志组,控制指定包对应的日志输出级别,也可以直接控制指定包对应的日志输出级别。环境分类配置文件中常用于设置冲突属性(局部)3.2:多层级配置文件间的属性采用叠加并覆盖的形式作用于程序。特别注意下图的环境分类配置文件的命名格式。主配置文件中设置公共配置 (全局)3.1:配置文件分为四种。(1)添加日志记录操作。(2)设置日志输出级别。

qq_3512323979的博客 891

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Springboot(学习笔记)

name=lisi 键值对person.name=zhangsan 对象person.age=18 对象address=beijing,shanghai 数组(1) yml文法规则大小写敏刚 Son不等与son冒号与值之间必须加空格 port: 8080缩进不能用tab必须空格同级别左对齐 空格数量不重要#注释 #注释内容(2) 属性类型name: lisi 键值对mag1: 'aaa /n bbb' 常量。

m0_65939803的博客 247

springboot运维

1.通过启动参数加载配置文件(无需书写配置文件拓展名)启动后端口号是84。2.通过启动参数加载指定文件路径下的配置文件3.通过启动参数加载指定文件路径下的配置文件时可以加载多个配置ebank-server.yml中只有一个参数就是端口号是85,运行后端口号为85。即加载多个配置,最终执行最后一个配置(覆盖思想,执行最后一个)。

weixin_44522680的博客 977

SpringBoot配置深度解析:从原理到实战的完整指南

在Java应用开发中,配置管理是连接代码与运行环境的核心环节,它定义了应用的行为参数和运行规则。其基本原理是通过外部化配置实现应用在不同环境下的灵活适配,从而解决开发、测试与生产环境无缝切换的痛点。这项技术的核心价值在于提升应用的可维护性、安全性与部署效率,是实现持续集成与交付(CI/CD)和云原生架构的重要基础。典型的应用场景包括微服务架构中的多环境部署、敏感信息管理以及配置的动态刷新。本文聚焦于SpringBoot框架的配置体系,深入剖析其多层次配置源、外部化配置机制以及@ConfigurationPr

weixin_33462167的博客 301

Spring Boot+Vue人才管理系统:从环境搭建到功能测试全流程指南

在信息化管理领域,前后端分离架构已成为构建现代化Web应用的主流范式。其核心原理在于将用户界面与业务逻辑解耦,前端负责交互展示,后端专注数据处理与API供给,通过HTTP协议进行通信。这种架构模式的技术价值在于提升了开发效率、增强了系统可维护性,并便于团队分工协作。在众多应用场景中,企业内部管理系统是典型代表,尤其适用于需要处理结构化数据、实现精细权限控制与数据可视化的场景。本文聚焦的高层次人才信息管理系统,正是基于Spring Boot与Vue.js技术栈,实现了对人才数据的全生命周期管理,涵盖了从环境配

weixin_33965305的博客 410

跟著Qcadoo MES系统学习产品设计

Manufacturing Execution System,MES是工业4.0的核心系统,智能制造的大脑,跟踪Qcadoo MES学习产品设计001

通达的博客 2141

spring sringboot 加载配置文件 多目录配置文件 多级分类配置文件

  ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = resolver.getResources("/job/**/*.json");    /job/*.json 只包含job目录下文件。   /job/*/*.json 只包含子级目录中的...

weixin_34344677的博客 938

spring 自定义配置属性 嵌套 集合

在属性上使用注解 @NestedConfigurationProperty private UserDetailsProperties user;

路过君的博客 2542
上一篇: win10下正确配置jdk环境变量
下一篇: mysql的进阶学习--在学习之前
码儿快跑~
博客等级 码龄8年 51粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值