SSM从零开始搭框架(三)

时间:2022-10-19 15:15:14

前言

上面两篇博客,我们把基本的框架搭起来了.但是里面还有好多需要完善的,我们一点点来完善

ssm整合swagger

有个问题啊.每次启动web和service之后,想要测个接口,就得打开postman,一个个拼url, 很麻烦,所以我们就采用了swagger.

ssm如何整合swagger呢,请看这篇博客:  SSM整合swagger

跨域处理

现在测试方便了, 前后端需要联调, 前端要去调后端,就用到了跨域处理,如何配置呢,请看这篇文章: 跨域处理

一个项目,怎么能少了日志呢?

ssm整合log4j

添加jar包

由于我们所有项目的一个公共的管理jar的版本的地方:kwy-parent(这里如果忘记结构了,可以回过去看一下这篇博客: SSM从零开始搭框架(一)). 所以需要在这个里面,添加上jar以及jar的版本

<log4j.version>1.2.17</log4j.version>
<log4jdbc.version>1.16</log4jdbc.version>
<slf4j.version>1.7.25</slf4j.version>
<dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
</dependency>
<dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <version>${slf4j.version}</version>
</dependency>
<dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
       <version>${log4j.version}</version>
</dependency>
<!-- print sql# -->
<dependency>
       <groupId>org.bgee.log4jdbc-log4j2</groupId>
       <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
       <version>${log4jdbc.version}</version>
</dependency>
<!-- #print sql -->

web和service的pom中分别添加依赖

如果对这一块maven不太清楚,请看我的maven系列博客

<!--日志相关-->  
<dependency>  
<groupId>org.slf4j</groupId>  
<artifactId>slf4j-api</artifactId>  
</dependency>  
<dependency>  
<groupId>org.slf4j</groupId>  
<artifactId>slf4j-log4j12</artifactId>  
</dependency>  
<dependency>  
<groupId>org.apache.logging.log4j</groupId>  
<artifactId>log4j-core</artifactId>  
</dependency> 

添加log4j.properties文件

在resources目录下添加log4j.properties文件. 文件具体内容,先来看一篇关于日志的详解: log4j配置文件简解, 这篇文章里面,还附了一篇关于p6spy格式化sql, 大家感兴趣,可以继续点进去看

根据文件的解释,来添加自己喜欢的日志格式.

这里附上我们项目的log4j配置文件

service

#root
log4j.rootLogger=info,CONSOLE,file
# CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
#log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %l %t |- %m%n
#file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyyMMdd
log4j.appender.file.File=../logs/sign-service.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %-5p %l %t |- %m%n
#dubbo
log4j.logger.com.alibaba.dubbo=ERROR
##p6spy
log4j.additivity.p6spy=false
log4j.logger.p6spy=info,spyConsole,file
log4j.appender.spyConsole=org.apache.log4j.ConsoleAppender
log4j.appender.spyConsole.Target=System.out
log4j.appender.spyConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.spyConsole.layout.ConversionPattern=#####--%m%n

web

#root
log4j.rootLogger=INFO,CONSOLE,file
log4j.additivity.org.apache=true
# CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
#log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %l %t |- %m%n
#file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.file.DatePattern=yyyyMMdd
log4j.appender.file.File=../logs/sign-web.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout  
log4j.appender.file.layout.ConversionPattern=%d %-5p %l %t |- %m%n
#dubbo
log4j.logger.com.alibaba.dubbo=ERROR

使用

//定义打印日志相关
private static final Logger logger = LoggerFactory.getLogger(TeachclassController.class);

SSM整合junit

在框架中添加单元测试是肯定的.来看看添加步骤吧