美文网首页
10、SSM集成swagger 和 log4j

10、SSM集成swagger 和 log4j

作者: 俊果果 | 来源:发表于2019-07-26 22:58 被阅读0次

继续上集SSM项目-抢红包案例

一、引入Swagger

1、引入pom依赖

 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
    </dependency>

2、添加 Swagger Config

新增一个类 config.SwaggerConfig,内容如下:

package com.wishuok.config;

import com.google.common.base.Predicate;
import io.swagger.annotations.Api;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;


import static com.google.common.base.Predicates.or;
import static springfox.documentation.builders.PathSelectors.regex;

@WebAppConfiguration
@EnableSwagger2
@ComponentScan(basePackages = "com.wishuok.controller")//配置Swagger要扫描的包
@EnableWebMvc
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                //use controllers annotated with @Api
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) //Selection by RequestHandler
                .paths(PathSelectors.any()) // and by paths
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("SSM Swagger接口信息")
                .description("Spring SpringMVC Mybatis 示例程序")
                .contact(new Contact("keith", "http://wishuok.com", "keithhuang0124@gmail.com"))
                .version("0.0.1")
                .build();
    }
}

只有 @Api注解的Controller 才会在 Swagger 中显示

3、修改spring-mvc.xml配置文件

添加如下配置:

<!--向容器自动注入配置 -->
 <context:annotation-config/>
<!--配置 Swagger-ui 资源 -->
 <mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />
 <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />
 <!--将 SwaggerConfig 配置类注入 -->
 <bean class="com.wishuok.config.SwaggerConfig"/>  

4、修改 UserRedPacketController

添加注解

@Api(value = "/userRedPacket", tags = {"抢红包模拟"})
public class UserRedPacketController {

给每个 uri 添加注解

@ApiOperation(value = "redis实现", notes = "利用redis抢红包", httpMethod = "GET", response = Map.class)

5、启动项目

浏览器输入地址http://localhost/swagger-ui.html

image.png

6、 Github Commit

二、使用 log2j记录日志

1、引入pom依赖

 <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

2、配置log4j.properties

改为如下内容

# LOG4J configuration
log4j.rootLogger=INFO, Appender1

log4j.appender.Appender1=org.apache.log4j.ConsoleAppender
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender1.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n

log4j.logger.ssmcustomlog=INFO, ssmcustomlog
log4j.appender.ssmcustomlog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ssmcustomlog.File=D:/logs/ssmcustomlog/daily.log
#每天生成一个新的log文件(如要每分钟生成新的,用:'.'yyyy-MM-dd-HH:mm
log4j.appender.ssmcustomlog.DatePattern='.'yyyy-MM-dd
log4j.appender.ssmcustomlog.layout=org.apache.log4j.PatternLayout
log4j.appender.ssmcustomlog.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n

3、新增一个LogHelper

package com.wishuok.utils;

import org.apache.log4j.Logger;

public class LogHelper {
    private static Logger logger = Logger.getLogger("ssmcustomlog");
    public static void LogInfo(String log){
        logger.info(log);
    }

    public static void LogError(String log){
        logger.error(log);
    }
}

4、使用log

RedisController添加

image.png

5、运行测试

文件位置

image.png
log内容
image.png

6、 Github Commit

相关文章

网友评论

      本文标题:10、SSM集成swagger 和 log4j

      本文链接:https://www.haomeiwen.com/subject/tkjjrctx.html