在百度上做网站怎么做,做网站有多赚钱,网站开发多少钱一天是,嘉兴网站排名优化价格1、运行维护
1.1、打包程序 SpringBoot程序是基于Maven创建的#xff0c;在Maven中提供有打包的指令#xff0c;叫做package。本操作可以在Idea环境下执行。
mvn package
打包后会产生一个与工程名类似的jar文件#xff0c;其名称是由模块名版本号.jar组成的。
1.2、程序…1、运行维护
1.1、打包程序 SpringBoot程序是基于Maven创建的在Maven中提供有打包的指令叫做package。本操作可以在Idea环境下执行。
mvn package
打包后会产生一个与工程名类似的jar文件其名称是由模块名版本号.jar组成的。
1.2、程序运行
程序包打好以后就可以直接执行了。在程序包所在路径下执行指令。
java -jar 工程包名.jar
执行程序打包指令后程序正常运行与在Idea下执行程序没有区别。 特别关注如果你的计算机中没有安装java的jdk环境是无法正确执行上述操作的因为程序执行使用的是java指令。 特别关注在使用向导创建SpringBoot工程时pom.xml文件中会有如下配置这一段配置千万不能删除否则打包后无法正常执行程序。
buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins
/build
但是实际上会有一些其他问题加载主引导类呀打包时候的jdk版本呀
buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource17/sourcetarget17/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfiguration mainClasscom.songzhishu.springboot.SpringBootDemo3Application/mainClassskipfalse/skip/configurationexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build
如果在启动的时候出现端口被占用那么怎么处理问题呐
# 查询端口
netstat -ano
# 查询指定端口
netstat -ano |findstr 端口号
# 根据进程PID查询进程名称
tasklist |findstr 进程PID号
# 根据PID杀死任务
taskkill /F /PID 进程PID号
# 根据进程名称杀死任务
taskkill -f -t -im 进程名称
2、配置高级
2.1、临时属性设置 程序打包好后然后出现一些小问题然后要修改配置文件那么要重新打包程序嘛然后修改配置文件嘛可以在程序启动的时候可以设置临时的属性。方法也特别简单在启动的时候添加上对应参数就可以了。
java –jar springboot.jar –-server.port80 比如修改启动的端口号当然也可以添加其他的属性上面的命令是启动SpringBoot程序包的命令在命令输入完毕后空一格然后输入两个-号。下面按照属性名属性值的形式添加对应参数就可以了。记得这里的格式不是yaml中的书写格式当属性存在多级名称时中间使用点分隔和properties文件中的属性格式完全相同。
如果你发现要修改的属性不止一个可以按照上述格式继续写属性与属性之间使用空格分隔。
java –jar springboot.jar –-server.port80 --logging.level.rootdebug
2.2、属性加载优先级 关于属性的配置和修改不只是可以通过配置类配置文件临时修改等等官方提供的居然有14种配置的位置也就是说某一处的配置没有生效的话很有可能是被其他的地方的覆盖啦
然后你就要对照这些可能会出现的地方进行修改
2.3、开发环境中使用临时属性 是这样的springboot是提供可以临时修改属性但是万一再实际的开发中遇到问题需要临时修改属性但是修改后没有效果怎么办所以再开发阶段就要考虑这个问题我们要测试临时环境的配置是不是可以生效。 再引导类中args可以设置临时属性进行测试当然如果不想让修改临时属性去掉args就可以啦。
2.4、配置文件分类 SpringBoot提供了配置文件和临时属性的方式来对程序进行配置。前面一直说的是临时属性这一节要说说配置文件了。其实这个配置文件我们一直在使用只不过我们用的是SpringBoot提供的4级配置文件中的其中一个级别。4个级别分别是 类路径下配置文件一直使用的是这个也就是resources目录中的application.yml文件 类路径下config目录下配置文件 程序包所在目录中配置文件 程序包所在目录中config目录下配置文件 好复杂一个一个说。其实上述4种文件是提供给你了4种配置文件书写的位置功能都是一样的都是做配置的。那大家关心的就是差别了没错就是因为位置不同产生了差异。总体上来说4种配置文件如果都存在的话有一个优先级的问题说白了就是加入4个文件我都有里面都有一样的配置谁生效的问题。上面4个文件的加载优先顺序为 file config/application.yml 【最高】 file application.yml classpathconfig/application.yml classpathapplication.yml 【最低】
3、多环境开发
什么是多环境开发就是再不同的环境下面对应不同的配置文件。
3.1、单一的配置文件
spring:config:activate: pro #启用pro
---
spring:config:activate:on-profile: pro
server:port: 80
---
spring:config:activate:on-profile: dev
server:port: 81
---
spring:config:activate:on-profile: test
server:port: 82
总结 多环境开发需要设置若干种常用环境例如开发、生产、测试环境 yaml格式中设置多环境使用---区分环境设置边界 每种环境的区别在于加载的配置属性不同 启用某种环境时需要指定启动时使用该环境 3.2、多文件的配置文件 将所有的配置都放在一个配置文件中尤其是每一个配置应用场景都不一样这显然不合理于是就有了将一个配置文件拆分成多个配置文件的想法。拆分后每个配置文件中写自己的配置主配置文件中写清楚用哪一个配置文件就好了。
主配置文件
spring:profiles:active: pro # 启动pro
环境配置文件
server:port: 80 环境配置文件因为每一个都是配置自己的项所以连名字都不用写里面了。那问题是如何区分这是哪一组配置呢使用文件名区分。
application-pro.yaml
server:port: 80
application-dev.yaml
server:port: 81
文件的命名规则为application-环境名.yml。 在配置文件中如果某些配置项所有环境都一样可以将这些项写入到主配置中只有哪些有区别的项才写入到环境配置文件中。 主配置文件中设置公共配置全局 环境分类配置文件中常用于设置冲突属性局部
总结 可以使用独立配置文件定义环境属性 独立配置文件便于线上系统维护更新并保障系统安全性
3.3、多环境开发独立配置文件书写技巧
准备工作
将所有的配置根据功能对配置文件中的信息进行拆分并制作成独立的配置文件命名规则如下 application-devDB.yml application-devRedis.yml application-devMVC.yml
使用 使用include属性在激活指定环境的情况下同时对多个环境进行加载使其生效多个环境间使用逗号分隔
spring:profiles:active: devinclude: devDB,devRedis,devMVC 比较一下现在相当于加载dev配置时再加载对应的3组配置从结构上就很清晰用了什么对应的名称是什么
注意 当主环境dev与其他环境有相同属性时主环境属性生效其他环境中有相同属性时最后加载的环境属性生效
改良 但是上面的设置也有一个问题比如我要切换dev环境为pro时include也要修改。因为include属性只能使用一次这就比较麻烦了。SpringBoot从2.4版开始使用group属性替代include属性降低了配置书写量。简单说就是我先写好你爱用哪个用哪个。
spring:profiles:active: devgroup:dev: devDB,devRedis,devMVCpro: proDB,proRedis,proMVCtest: testDB,testRedis,testMVC 现在再来看如果切换dev到pro只需要改一下是不是就结束了完美
总结 多环境开发使用group属性设置配置文件分组便于线上维护管理
3.4、多环境开发控制 多环境开发到这里基本上说完了最后说一个冲突问题。就是maven和SpringBoot同时设置多环境的话怎么搞。 要想处理这个冲突问题你要先理清一个关系究竟谁在多环境开发中其主导地位。也就是说如果现在都设置了多环境谁的应该是保留下来的另一个应该遵从相同的设置。 maven是做什么的项目构建管理的最终生成代码包的SpringBoot是干什么的简化开发的。简化又不是其主导作用。最终还是要靠maven来管理整个工程所以SpringBoot应该听maven的。整个确认后下面就好做了。大体思想如下 先在maven环境中设置用什么具体的环境 在SpringBoot中读取maven设置的环境即可
maven中设置多环境
profilesprofileidenv_dev/idpropertiesprofile.activedev/profile.active/propertiesactivationactiveByDefaulttrue/activeByDefault !--默认启动环境--/activation/profileprofileidenv_pro/idpropertiesprofile.activepro/profile.active/properties/profile
/profiles
SpringBoot中读取maven设置值
spring:profiles:active: profile.active
4、日志
4.1、日志级别
日志设置好以后可以根据设置选择哪些参与记录。这里是根据日志的级别来设置的。日志的级别分为6种分别是 TRACE运行堆栈信息使用率低 DEBUG程序员调试代码使用 INFO记录运维过程数据 WARN记录运维过程报警数据 ERROR记录错误堆栈信息 FATAL灾难信息合并计入ERROR
一般情况下开发时候使用DEBUG上线后使用INFO运维信息记录使用WARN即可。下面就设置一下日志级别。日志级别低的会被日志级别高的覆盖。
logging:# 设置日志组group:# 自定义组名设置当前组中所包含的包ebank: com.songzhishu.controllerlevel:root: warn# 为对应组设置日志级别ebank: debug# 为对包设置日志级别com.songzhishu.controller: debug
基于lombok提供的Slf4j注解为类快速添加日志对象
4.2、日志输出格式控制 日志已经能够记录了但是目前记录的格式是SpringBoot给我们提供的如果想自定义控制就需要自己设置了。先分析一下当前日志的记录格式。
2023-11-10 12:43:06.694 #时间
INFO #日志级别
2024 #pid
---
[main] #当前线程
c.s.s.SpringBootDemo3Application: #所属的类或者接口名简化啦
Started SpringBootDemo3Application in 1.497 seconds (JVM running for 1.857)#日志信息
对于单条日志信息来说日期触发位置记录信息是最核心的信息。级别用于做筛选过滤PID与线程名用于做精准分析。
logging:pattern:console: %d %clr(%p) --- [%16t] %clr(%-40.40c){cyan} : %m %n
4.3、日志文件
日志不能仅显示在控制台上要把日志记录到文件中方便后期维护查阅。对于日志文件的使用存在各种各样的策略例如每日记录分类记录报警后记录等。这里主要研究日志文件如何记录。记录日志到文件中格式非常简单设置日志文件名即可。
logging:logback:rollingpolicy:max-file-size: 3KBfile-name-pattern: server.%d{yyyy-MM-dd}.%i.log