SpringBoot实操篇1
一、工程打包与运行(windows版)
在浏览器中就可以访问到了,此时IDEA并没有启动。服务器就是命令行窗口。
跳过测试:可以看到多了很多数据,是因打包的时候将功能测试了一遍。在IDEA中可以关掉。
注意:必须要有打包插件(插件作用:打一个可以独立运行的jar包)
二、Boot工程快速启动(Lunix版)
前提:
mysql安装在/root下,由root用户启动
tomcat安装在/root下,由普通用户tomcat启动
将打包好的文件上传到Linux中:
输入指令启动就OK:
三、配置高级
1.设置临时属性
如果要设置临时属性:命令行设置的临时属性高于配置文件。
要设置多个临时属性,用空格分开:
2.如何在开发环境中设置临时属性
配置方式1:
是传到args中的
方式二:上面看到是传入args中,我们就可以直接在代码中设置
为了安全,也可以不要这个参数,外部人员就在命令行改不了了,之能用配置文件的。
3.配置文件4级分类
在IDEA中提供两个级别的配置文件,一个是程序员使用的,一个是做程序总控的。
这两个文件合作配置。高级别的配置文件覆盖低级别的配置文件。
在打包好的目录里还有两个配置文件。
总结:SpringBoot中4级配置文件
1级:file:config/application.yml 最高
2级:file:application.yml
3级:classpath:config/appliction.yml
4级:classpath:application.yml 最低
作用:
1级和2级留作系统打包后设置通用属性,1级常用于运维经理进行线上整体项目部署方案调控。
3级和4级用于系统开发阶段设置通用属性,3级常用于项目经理进行整体项目属性调控。
4.自定义配置文件
1.通过启动参数加载配置文件(无序书写配置文件扩展名)
2.通过启动参数加载指定文件路径下的配置文件时可以加载多个配置
后面的配置文件生效了。
重要说明:
单服务器项目:使用自定义配置文件需求较低
多服务器项目:使用自定义配置文件需求较高,将所有配置放置在一个目录中,统一管理
基于SpringCloud技术,所有的服务器将不再设置配置文件,而是通过配置中心进行设定,动态加载配置信息
四、多环境开发
1.yml版本
多环境开发需要设置若干常用环境,例如开发、生产、测试环境
yaml格式中设置多环境使用—区分环境设置边界
每种环境的区别在于加载的配置属性不同
启用某种环境时需要指定启动时使用该环境
#应用环境
#公共配置
spring:
profiles:
active: pro
---
#设置环境
#生产环境
spring:
config:
activate:
on-profile: pro
server:
port: 80
---
#开发环境
spring:
config:
activate:
on-profile: dex
server:
port: 81
---
#测试环境
spring:
config:
activate:
on-profile: test
server:
port: 82
会有暴露配置的问题?把配置文件分开
主配置文件写要应用的环境,和共同配置
写各自的配置
2.properties版本
properties版本只有多文件版本。
主配置文件写要使用的环境,共同的配置
书写技巧:
根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件。
通过include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔。
注意:后配置的先加载。当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效。
group属性:
3.多环境开发配置
springboot是基于maven运行的,maven的配置高于springboot。
如何用maven控制boot的环境?
在pom.xml文件中设置:
<!--设置多环境-->
<profiles>
<profile>
<id>env_dev</id>
<properties>
<profile.active>dev</profile.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>env_pro</id>
<properties>
<profile.active>pro</profile.active>
</properties>
</profile>
</profiles>
在主配置文件中引用:相当于在pom.xml中设置一个变量,在配置文件中用变量名引用一下
五、日志
日志用于记录开发调试与运维过程消息;
日志的级别共6种,通常使用4种即可,分别是DEBUG,INFO,WARN,ERROR;
可以通过日志组或代码包的形式进行日志显示级别的控制。
1.日志基础
在引导类中添加:
@RestController
@RequestMapping("/books")
public class BookController {
//1.创建记录日志的对象
private static final Logger log= LoggerFactory.getLogger(BookController.class);
@GetMapping
public String getById(){
System.out.println("springboot is running...");
//记录日志
log.debug("debug...");
log.info("info....");//启动的默认级别
log.warn("warn...");
log.error("error...");
return "springboot is running...";
}
}
在浏览器刷新一下,看控制台:
只显示了三行记录,因为默认启动的是info级别的。
在配置文件中把debug模式开启:
或者这样设置日志级别:
信息多了很多:
设置某个包的日志:(代码包)
设置某个组的日志:(日志组)
优化日志对象创建代码:使用lombok提供的注解@Slf4j简化开发,减少日志的声明操作
@Slf4j
@RestController
@RequestMapping("/books")
public class BookController {
//1.创建记录日志的对象
// private static final Logger log= LoggerFactory.getLogger(BookController.class);
@GetMapping
public String getById(){
System.out.println("springboot is running...");
//记录日志
log.debug("debug...");
log.info("info....");//启动的默认级别
log.warn("warn...");
log.error("error...");
return "springboot is running...";
}
}
2.日志输出格式控制
设置一个和原版差不多的日志格式:
3.日志文件
如何把日志记到文件里。