工程打包与运行
使用maven去打包,
取消测试打包,如图所示,点击一下
点完test就会变灰色
然后clear清空之前的包,然后重新package打包
左侧就会出现target文件,里面就会有打好的包
然后show in Explorer在文件资源器中打开,打开后在搜索栏输入cmd,然后输入运行jar包命令
java -jar jar包名称
注意(maven中一定要有打包插件):
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
否则启动会报错没有主表单属性,如果是端口号冲突,你可以修改端口号,或者杀死冲突端口的进程,二选一即可
windos端口被占用
#查询端口
netstat -ano
#查询指定端口
netstat -ano | findstr "端口号"
#根据进程PID查询进程名称
tasklist | findstr "进程PID号"
#根据PID杀死任务
tasklist /F /PID "进程PID号"
#根据进程名称杀死任务
taskkill -f -t -im "进程名称"
Linux上部署项目
也是将jar包放到上面执行命令,但是如果就执行java -jar jar包名 那么就会出现霸屏问题,不能干其余操作了,可以放后台执行
jar -jar jar包名 > service.log 2>&1 &
临时属性
以某个端口运行jar包
jar -jar jar报名 --server.post=端口号
如果要添加多个临时属性,继续后面 --
jar -jar jar报名 --server.post=端口号 --属性=属性值
临时属性必须是当前boot工程支持的属性,否则设置无效
这得打包测试,那么idea如何测试呢
选择第一个,里面得program arguments
这样就会以8080启动
这个时候你可以输出打印args,会发现就是你刚写得临时属性
如果你不需要,就可以不携带参数启动,如上图所示
配置文件四级分类
可以在resource下面新建一个config目录,里面将application.yml复制一个进去,然后进行最后得配置(是给经理用得,如果配置相同参数,经理级别的生效,如果配置不同,都生效),如果有些隐私参数不给使用,会在jar打包之后在同级目录在生成一个application.yml文件,最后这个文件生效,是给运维人员用,四级:在同jar包目录级别里,创建一个config目录,里面生成一个application.yml文件,还有运维组长用,最高级。
自定义配置文件
第一种
这样就可以把默认的application.properties名字改为ebank.properties,同时ebank.yml配置也生效
第二种
根据全路径去找
单服务一般这样配置,如果是微服务,那么通过配置中心配置就行
多环境开发
yaml文件里面这样设置
#应用环境 #公用配置 spring: profiles: active: pro --- #生产环境 spring: profiles: pro server: port: 81 --- #开发环境 spring: profiles: dev server: port: 82 --- #测试环境 spring: profiles: test server: port: 83
多个配置文件,将上面文件分文件配置
主文件采用
spring:
profiles:
active: pro
分组管理
spring:
profiles:
active: pro
group:
"dev": devDB,devMVC
"pro": proDB,proMVC
maven控制
<profiles> <profile> <id>dev-env</id> <properties> <profile.active>dev</profile.active> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>pro-env</id> <properties> <profile.active>pro</profile.active> </properties> </profile> </profiles>
pom文件应用,上面哪里有activation,就是采用哪一个,springboot引用maven属性
spring: profiles: active: @profile.active@
如果要换activation,换完idea会有缓存(idea中的bug),需要手工执行一下compile,就可以了
日志
日志作用:
编程期调式代码
运营期记录信息
记录日常运营重要信息(峰值流量,平均响应时长)
记录应用报错信息(错误堆栈)
记录运维过程数据(扩容,宕机,报警)
自定义日志类
package com.zxd.ssmp.config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class BaseClass { Class clazz; Logger log; public BaseClass(){ clazz = this.getClass(); log = LoggerFactory.getLogger(clazz); } }
哪个类需要,继承即可直接使用
系统默认日志级别info,要配置文件设置
logging: #定义包分组 group: ebank: com.zxd.ssmp.controller,com.zxd.ssmp.service,com.zxd.ssmp.dao isservice: com.alibaba level: root: debug #设置某个包的级别 com.zxd.ssmp: debug #设置分组,对某个组设置日志级别 ebank: info
如果引用lombak直接使用注解@Slf4j放在类上面即可
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
日志输出格式
设置日志xml文件,放到resource目录下面
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
#文件路径
<property name="LOG_HOME" value="./data/report/logs"/>
#文件名称
<property name="LOG_NAME" value="report"/>
<!--控制台-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{MM-dd HH:mm:ss.SSS} | %thread |-%-5level %logger{36}:%L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
</appender>
<!-- 日志文件 -->
<appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- <file>${LOG_HOME}/${LOG_NAME}.log</file>-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- <fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/${LOG_NAME}-%i.log</fileNamePattern>-->
<fileNamePattern>${LOG_HOME}/%d{yyyyMMdd}.${LOG_NAME}.%i.log</fileNamePattern>
#最大内存
<maxFileSize>50MB</maxFileSize>
#保存时间
<maxHistory>30</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{MM-dd HH:mm:ss.SSS} |-%-5level %logger{36}:%L - %m%n</pattern>
</layout>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="LOGFILE" />
</root>
</configuration>
yml配置文件进行日志配置
logging: config: classpath:logback.xml