SpringBoot2学习笔记(实用篇)

目录

一、对SpringBoot项目的打包

1、普通打包(windows)

2、普通打包(linux)

3、 处理端口被占用

二、属性配置

1、临时属性的配置

2、配置文件的级别

3、自定义配置

三、多环境的开发

1、yaml版

2、多文件版(yaml)

 3、书写技巧

4、多环境开发

四、日志

1、日志的基础操作

2、快速创建日志对象(lombok)

3、日志输出格式

 4、用文件存储日志


一、对SpringBoot项目的打包

1、普通打包(windows)

进入所在目录

在所在目录进入cmd

输入

java -jar jar包的名字.jar

即可运行

需要mvn的插件依赖才行

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2、普通打包(linux)

大致步骤与windows相同

  • 将执行日志放在指定log中 

nohup java -jar *.jar > server.log 2>&1 &

关闭进程

ps -ef | grep "java -jar" //显示进程名相关的信息

kill -9 41047  //杀死pid为41047的进程

3、 处理端口被占用

  • windows

 

二、属性配置

1、临时属性的配置

带属性参数启动springBoot(Linux)

java -jar springboot.jar --server.prot=80 --属性键值=属性值

属性间用空格分隔

必须是boot支持的属性

  • 在开发环境下更改临时属性(idea下)

 方法1

方法2

 在引导类中,通过更改引导类的形参来更改

public static void main(String[] args) {
        String[] arg = new String[1];
        arg[0] = "--server.port=83";
        SpringApplication.run(Springboot03SsmpApplication.class, arg);
    }

为了安全,将引导类中的形参删除临时属性就不起作用

SpringApplication.run(Springboot03SsmpApplication.class);

2、配置文件的级别

通常有四种级别是常用的,springboot找配置文件是向上找的

1、resources目录下的配置文件(../resources/application.yml),级别最低(通常用于开发人员本机的开发与测试)

2、resources目录下的config目录下的(../resouces/config/application.yml),排第三(通常用于项目经理的整体调控)

3、工程的jar包同层的配置文件(application.yml),第二(通常用于运维人员配置涉密线上环境)

4、工程的jar包同层的config目录下的配置文件(config/application.yml),最高(用于运维经理的整体调控)

3、自定义配置

即不用默认的配文件(application.yml),自己定义配置文件

在program arguments一栏中

--spring.config.name=配置文件名称(不用写扩展名)

--spring.config.lacation=classpath:/配置文件名(绝对路径) 可写多个

 但在实际的微服务的开发中以上方法不常用,会使用配置中心进行管理配置文件

三、多环境的开发

在实际的开发过程中通常有多种环境,如不同的mysql的url,需事先配置好

1、yaml版

#实际用的环境
spring:
  profiles:
    active: dev
#环境之间用分隔线区分
---
#生产环境名定义
spring:
  profiles: pro

#具体参数设定
server:
  port: 8082

---
#开发环境定义
spring:
  profiles: dev
#具体参数设定
server:
  port: 8083
---
#测试环境定义
spring:
  profiles: test
#具体参数设定
server:
  port: 8084

2、多文件版(yaml)

一个环境占一个文件,便于线上系统的维护更新和保障系统的安全性

文件命名规则

主环境名-环境名(主环境名中决定用哪个文件)

application.yml

application-pro.yml (环境文件中就不用写环境名的配置了)

application-dev.yml

 3、书写技巧

  • 通常我们会对配置文件进行划分如

application-devDb.yml

application-devRedis.yml

application-devMVC.yml

这时可以用如下的用法

spring:

 profiles:

  active: dev //优先级最高

  include: devDb,devRedis

有缺点只能以dev开头

常用方法

spring:

 profiles:

  active: dev //优先级最低

  group:

    "dev": devDb,devDb,devRedis 只会使用主环境对应的组的环境

    "pro": proDb,proRedis

4、多环境开发

  • 当Maven与SpringBoot同时对多环境进行控制时,以Mavenue为主,SpringBoot使用@@占位符读取Maven配置的属性值。
  • 基于SpringBoot读取Maven配置属性的前提下,如果在idea下测试工程时pom.xml每次更新需要手动compile方可生效
pom.xml
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <profile.active>dev</profile.active>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>dev</id>
        <properties>
            <profile.active>pro</profile.active>
        </properties>
    </profile>
</profiles>

application .yml

spring:
  profiles:
    active: @profile.active@
    group:
      "dev": pro

四、日志

1、日志的基础操作

作用

  • 编程期的调试代码
  • 运营期记录信息
  • 记录日常运营重要信息(峰值流量,平均响应时长)
  • 记录应用报错信息(错误堆栈)
  • 记录运维过程数据(扩容、宕机、报警)

  • 日志的使用
private static final Logger log = LoggerFactory.getLogger(BookController.class);

log.info("info..");//记录普通信息

log.debug("info..");//记录调试信息

  • 设置日志组,指定包的日志输出级别
logging:
  #设置日志组
  group: 
    #自定义组名及所包含的包
    ebook: com.example.controller,com.example.service
  level: 
    #设置根的级别
    root: warn
    #设置组的级别
    ebook: debug
    #设置某个包的级别
    com.example.controller: info

 常用的级别debug,info,warn,error

2、快速创建日志对象(lombok)

导lombok的jar

挂上注解@Slf4j

就用log.使用

3、日志输出格式

更改日志输出格式

patten:

        console:“..."

示例

 4、用文件存储日志

  • 用单个文件保存
logging:
  file:
    name: server.log
  • 分多个文件记录
logging:
  logback:
    rollingpolicy:
      max-file-size: 4KB
      file-name-pattern: server.%d{yyyy-MM-dd}.%i.log

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值