Commit 60eb3a87 by qiuweili123

modify

parent 0751bdfd
package com.secoo.mall.common.util.spring;
import com.secoo.mall.common.core.exception.SystemInternalException;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext context;
public void setApplicationContext(ApplicationContext arg0)
throws BeansException {
context = arg0;
}
public static ApplicationContext getApplicationContext() {
return context;
}
public static <T> T getBean(Class<T> clazz) {
if (clazz == null) {
throw new SystemInternalException();
}
if (context == null) {
throw new SystemInternalException();
}
T result = getApplicationContext().getBean(clazz);
if (result == null) {
throw new SystemInternalException();
}
return result;
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<!-- <property name="LOG_HOME" value="./log" /> -->
<!--取得spring boot中的变量值有2种方式,一种是resource,另外一种是使用springProperty,使用springProperty好处能指定默认值-->
<!-- <property resource="application.properties"/>
-->
<springProperty scope="context" name="logLevel" source="log.level" defaultValue="info"/>
<springProperty scope="context" name="logName" source="spring.application.name" defaultValue="app"/>
<springProperty scope="context" name="logPath" source="log.path" defaultValue="./logs"/>
<property name="PATTERN" value="- | %d{yyyy-MM-dd HH:mm:ss.SSS} | %-5level | %X{traceId} | %thread | %logger{36} | %msg%n"/>
<property name="CHARSET" value="UTF-8"/>
<jmxConfigurator/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<!-- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}|%msgno|%thread|%-5level|%logger{20}-%msg%n</pattern> -->
<pattern>${PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<immediateFlush>false</immediateFlush>
</appender>
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level> <!-- 只记录error级别的日志 -->
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 定义文件的名称 -->
<file>${logPath}/${logName}/error.log
</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- rollover daily -->
<!-- 设置达到指定大小限制后输出的日志名称 -->
<fileNamePattern>${logPath}/${logName}/error-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>${PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<immediateFlush>false</immediateFlush>
</appender>
<appender name="APP" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 定义文件的名称 -->
<file>${logPath}/${logName}/app.log
</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<!-- 设置达到指定大小限制后输出的日志名称 -->
<fileNamePattern>${logPath}/${logName}/app-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<immediateFlush>false</immediateFlush>
</appender>
<appender name="ASYN_APP" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="APP"/>
<queueSize>1024</queueSize>
<neverBlock>true</neverBlock>
</appender>
<appender name="ASYN_ERROR" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="ERROR"/>
<queueSize>256</queueSize>
<neverBlock>true</neverBlock>
</appender>
<appender name="ASYN_STDOUT" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="STDOUT"/>
<queueSize>256</queueSize>
<neverBlock>true</neverBlock>
</appender>
<logger name="app" level="${logLevel}">
<appender-ref ref="ASYN_APP"/>
</logger>
<logger name="error" level="${logLevel}">
<appender-ref ref="ASYN_ERROR"/>
</logger>
<!-- 业务日志输出-->
<logger name="com.secoo.mall" level="${logLevel}">
<appender-ref ref="ASYN_APP"/>
</logger>
<!--统一日志输出级别,其他appender中如果有高于此处等级设置的也会被输出 -->
<root level="${logLevel}">
<appender-ref ref="ASYN_STDOUT"/>
<appender-ref ref="ASYN_ERROR"/>
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> --> <!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> -->
<configuration scan="true" scanPeriod="60 seconds" debug="false"> <configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 --> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
...@@ -10,10 +10,18 @@ ...@@ -10,10 +10,18 @@
<springProperty scope="context" name="logLevel" source="log.level" defaultValue="info"/> <springProperty scope="context" name="logLevel" source="log.level" defaultValue="info"/>
<springProperty scope="context" name="logName" source="spring.application.name" defaultValue="app"/> <springProperty scope="context" name="logName" source="spring.application.name" defaultValue="app"/>
<springProperty scope="context" name="logPath" source="log.path" defaultValue="./logs"/> <springProperty scope="context" name="logPath" source="logging.path" defaultValue="/data/logs"/>
<property name="PATTERN" value="- | %d{yyyy-MM-dd HH:mm:ss.SSS} | %-5level | %X{traceId} | %thread | %logger{36} | %msg%n"/> <springProfile name="test,dev,local">
<springProperty scope="context" name="logPath" source="logging.path" defaultValue="./logs"/>
</springProfile>
<!--
<property name="EMAIL_ADDRESS"
value="liyuqing@secoo.com,gaoxinxin@secoo.com,xueyuying@secoo.com,zhangjianbin@secoo.com,cuixiaoting@secoo.com,huazhifeng@secoo.com"/>
-->
<property name="PATTERN"
value="-|%d{yyyy-MM-dd HH:mm:ss.SSS}|%-5level|%X{traceId}|%thread|%logger{36}|%msg%n"/>
<property name="CHARSET" value="UTF-8"/> <property name="CHARSET" value="UTF-8"/>
<jmxConfigurator/> <jmxConfigurator/>
<!-- 控制台输出 --> <!-- 控制台输出 -->
...@@ -66,7 +74,25 @@ ...@@ -66,7 +74,25 @@
</encoder> </encoder>
<immediateFlush>false</immediateFlush> <immediateFlush>false</immediateFlush>
</appender> </appender>
<!--
<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>smtp.exmail.qq.com</smtpHost>
<username>baojing@secoo.com</username>
<password>Wrux8cUhBhGTY3Z6</password>
<SSL>true</SSL>
<asynchronousSending>true</asynchronousSending>
<from>baojing@secoo.com</from>
<to>${EMAIL_ADDRESS}</to>
<subject>${logName}【生产环境】错误报警</subject>
&lt;!&ndash;<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"></encoder>&ndash;&gt;
<layout class="ch.qos.logback.classic.html.HTMLLayout">
<pattern>${PATTERN}</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
-->
<appender name="ASYN_APP" class="ch.qos.logback.classic.AsyncAppender"> <appender name="ASYN_APP" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="APP"/> <appender-ref ref="APP"/>
<queueSize>1024</queueSize> <queueSize>1024</queueSize>
...@@ -77,6 +103,11 @@ ...@@ -77,6 +103,11 @@
<queueSize>256</queueSize> <queueSize>256</queueSize>
<neverBlock>true</neverBlock> <neverBlock>true</neverBlock>
</appender> </appender>
<!-- <appender name="ASYN_EMAIL" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="EMAIL"/>
<queueSize>256</queueSize>
<neverBlock>true</neverBlock>
</appender>-->
<appender name="ASYN_STDOUT" class="ch.qos.logback.classic.AsyncAppender"> <appender name="ASYN_STDOUT" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="STDOUT"/> <appender-ref ref="STDOUT"/>
<queueSize>256</queueSize> <queueSize>256</queueSize>
...@@ -89,15 +120,15 @@ ...@@ -89,15 +120,15 @@
<logger name="error" level="${logLevel}"> <logger name="error" level="${logLevel}">
<appender-ref ref="ASYN_ERROR"/> <appender-ref ref="ASYN_ERROR"/>
</logger> </logger>
<!-- 业务日志输出-->
<logger name="com.secoo.mall" level="${logLevel}">
<appender-ref ref="ASYN_APP"/>
</logger>
<!--统一日志输出级别,其他appender中如果有高于此处等级设置的也会被输出 --> <!--统一日志输出级别,其他appender中如果有高于此处等级设置的也会被输出 -->
<root level="${logLevel}"> <root level="${logLevel}">
<appender-ref ref="ASYN_STDOUT"/> <!-- <appender-ref ref="ASYN_EMAIL"/>-->
<springProfile name="test,dev,local">
<appender-ref ref="ASYN_STDOUT"/>
</springProfile>
<appender-ref ref="ASYN_APP"/>
<appender-ref ref="ASYN_ERROR"/> <appender-ref ref="ASYN_ERROR"/>
</root> </root>
</configuration> </configuration>
\ No newline at end of file
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>mall-common</artifactId> <artifactId>mall-common</artifactId>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<version>1.0.2.1006-DEV-SNAPSHOT</version> <version>1.0.2.1007-DEV-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>mall-common</artifactId> <artifactId>mall-common</artifactId>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<version>1.0.2.1006-DEV-SNAPSHOT</version> <version>1.0.2.1007-DEV-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>mall-common</artifactId> <artifactId>mall-common</artifactId>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<version>1.0.2.1006-DEV-SNAPSHOT</version> <version>1.0.2.1007-DEV-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>mall-common</artifactId> <artifactId>mall-common</artifactId>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<version>1.0.2.1006-DEV-SNAPSHOT</version> <version>1.0.2.1007-DEV-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>mall-common</artifactId> <artifactId>mall-common</artifactId>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<version>1.0.2.1006-DEV-SNAPSHOT</version> <version>1.0.2.1007-DEV-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>mall-common</artifactId> <artifactId>mall-common</artifactId>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<version>1.0.2.1006-DEV-SNAPSHOT</version> <version>1.0.2.1007-DEV-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
......
package com.secoo.mall.web.config; package com.secoo.mall.web.config;
import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI; import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
import com.secoo.mall.common.constant.CommonConstant;
import com.secoo.mall.web.annotation.ApiController; import com.secoo.mall.web.annotation.ApiController;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile; import org.springframework.context.annotation.Profile;
...@@ -17,7 +19,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; ...@@ -17,7 +19,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration @Configuration
@EnableSwagger2 @EnableSwagger2
@EnableSwaggerBootstrapUI @EnableSwaggerBootstrapUI
@Profile({"dev", "local", "test"}) @ConditionalOnProperty(name = "swagger.enable", havingValue = "true")
public class SwaggerConfig { public class SwaggerConfig {
@Value("${spring.application.name}") @Value("${spring.application.name}")
...@@ -27,12 +29,12 @@ public class SwaggerConfig { ...@@ -27,12 +29,12 @@ public class SwaggerConfig {
@Bean @Bean
public Docket createRestApi() { public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) .apiInfo(apiInfo())
.groupName("SecooMall") .groupName("SecooMall")
.select() .select()
.apis(RequestHandlerSelectors.withClassAnnotation(ApiController.class)) .apis(RequestHandlerSelectors.withClassAnnotation(ApiController.class))
.paths(PathSelectors.any()) .paths( PathSelectors.any())
.build(); .build();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment