SpringBoot(6)学习笔记工程打包运行&临时属性&配置文件4级分类&多环境开发&日志相关操作以及日志生成日志文件

工程打包与运行

使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值