SpringBoot(五)——SpringBoot细节(续)
前言
本篇笔记继续记录SpringBoot细节。
文章目录
概述
曾经我们使用的日志构件是Log4j,然而Log4j不够轻量级,这种书写系统日志的构件越轻量级越好,所以Log4j的制作人为我们提供了更轻量级的LogBack,其作用与Log4j一致。
日志使用
在SpringBoot中已经集成了日志依赖,所以我们不需要再引入相关依赖,可以直接使用在需要使用的层次中直接引用,具体步骤如下:
配置文件
logging:
level:
root: info # 调整全局的日志展示
com.lee.mapper: debug # 调整当前包的日志输出级别
com.lee.service: info # 配置业务层输出级别
file:
name: run.log # 指定生成的日志文件的名称
path: ./ # 指定将日志文件存储在当前项目内
- info级别和debug级别是一个分水岭,debug级别会在运行过程中输出大量日志;
- 建议根日志、控制器以及业务层中使用info级别,持久层中使用debug级别(debug级别会输出我们执行了什么SQL语句);
- 配置文件中的file分支表示的是我们在什么路径、什么文件中存储控制台中输出的日志。
【注】:我们在配置日志输出级别的时候,在满足日志的实用性的前提下,尽量少的输出日志,因为系统在运行过程中,日志输出的字节数较为庞大,会造成系统内存的一定负载。
手动指定输出日志
// 在使用日志的类中添加如下的日志对象,该对象通过工厂方式获取
private static final Logger log = LoggerFactory.getLogger(TestService.class);
public void test(String sname){
/* 日志中可以调用的常用方法有:info、debug等,需要测试系统执行流程时尽量使用debug,如果需要手动写入到日志文件时,则使用info对象。
*/
log.debug("message: " + " 调用这个方法了!");
log.debug("调用该方法的角色是: " + sname);
}
上述代码会在调用该方法时输入我们制定的日志。其实除了可以将输出的日志存储在指定的日志文件以外,它的作用和System.out.println()
语句没有什么使用上的区别,但是大量使用输出语句来debug或查看系统执行流程中的情况会降低系统的运行效率。综上所述,我们推荐在测试系统执行流程中想要展示在控制台的数据使用输出日志的方法来解决。
持久层注解
我们持久层整合到SpringBoot中的框架MyBatis工具时,需要在主入口类加入@MapperScan("com.xxx.mapper")
来扫描MyBatis接口的路径,其实还有一个注解也可以开启MyBatis接口扫描,具体如下:
// 该注解表示该接口会被SpringBoot按照MyBatis接口的形式扫描到(具体底层不做说明)
@Mapper
public interface TestMapper{
int insert(Object obj);
}
这样我们就可以不再入口类加入@MapperScan("com.xxx.mapper")
注解来开启扫描
开启事务管理
@Service
// 开启事务管理注解
@Transactional
public class TestServiceImpl implements TestService {
// 。。。
}
被该注解修饰的类中所执行的方法都会按照事务的规则来执行。
数据库连接池依赖
之前在文章中引入数据库连接池依赖的时候,所引入的是Druid依赖是druid-spring-boot-starter
,这个依赖会有相应的针对数据库连接执行所记录的一些详细记录,相对来说没有单独的Druid轻量。所以,一般来说,我们会引入单纯的Druid依赖。具体如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>
这个连接池仅仅会作为单纯的数据库连接池来使用。
IDEA 整合SpringBoot跳转JSP页面
我们在IDEA中使用SpringBoot跳转JSP的时候,我们经常会发现无法找到页面资源,其实不是我们搭建架构的问题,而是由于IDEA集成度较高,且SpringBoot中支持的前端页面为:HTML以及Themleaf资源;这个时候我们有两个解决办法,其中之一是通过Maven中引入的SpringBoot依赖中的一个启动器来启动SpringBoot,这样可以在启动后寻找到JSP页面,具体如下:
- Maven 依赖启动器启动:
- 配置IDEA中SpringBoot的Tomcat启动器启动:
将这个参数放在填入后再启动SpringBoot项目后,JSP 页面就可以被找到了,具体原理比较晦涩,不做赘述。
总结
本篇笔记中继续记录了一些IDEA中使用SpringBoot的一些小细节,常见的使用问题都在这里了,大家可以按照需要来查看学习。