diff --git a/pom.xml b/pom.xml
index ed74bf412..de537ef34 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
org.springframework.boot
spring-boot-starter-parent
- 1.5.9.RELEASE
+ 2.0.0.RELEASE
@@ -87,7 +87,7 @@
com.alibaba
druid-spring-boot-starter
- 1.1.6
+ 1.1.9
@@ -141,4 +141,4 @@
-
\ No newline at end of file
+
diff --git a/src/main/java/com/company/project/configurer/WebMvcConfigurer.java b/src/main/java/com/company/project/configurer/MyWebMvcConfigurer.java
similarity index 93%
rename from src/main/java/com/company/project/configurer/WebMvcConfigurer.java
rename to src/main/java/com/company/project/configurer/MyWebMvcConfigurer.java
index b1a3cfdd0..aa19f0aed 100644
--- a/src/main/java/com/company/project/configurer/WebMvcConfigurer.java
+++ b/src/main/java/com/company/project/configurer/MyWebMvcConfigurer.java
@@ -1,20 +1,9 @@
package com.company.project.configurer;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
-
import com.company.project.core.Result;
import com.company.project.core.ResultCode;
import com.company.project.core.ServiceException;
@@ -31,20 +20,57 @@
import org.springframework.web.servlet.NoHandlerFoundException;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-/**
- * Spring MVC 配置
- */
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Configuration
-public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
+public class MyWebMvcConfigurer implements WebMvcConfigurer {
- private final Logger logger = LoggerFactory.getLogger(WebMvcConfigurer.class);
+ private final Logger logger = LoggerFactory.getLogger(MyWebMvcConfigurer.class);
@Value("${spring.profiles.active}")
private String env;//当前激活的配置文件
- //使用阿里 FastJson 作为JSON MessageConverter
+ //添加拦截器
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ //接口签名认证拦截器,该签名认证比较简单,实际项目中可以使用Json Web Token或其他更好的方式替代。
+ if (!"dev".equals(env)) { //开发环境忽略签名认证
+ registry.addInterceptor(new HandlerInterceptorAdapter() {
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+ //验证签名
+ boolean pass = validateSign(request);
+ if (pass) {
+ return true;
+ } else {
+ logger.warn("签名认证失败,请求接口:{},请求IP:{},请求参数:{}",
+ request.getRequestURI(), getIpAddress(request), JSON.toJSONString(request.getParameterMap()));
+
+ Result result = new Result();
+ result.setCode(ResultCode.UNAUTHORIZED).setMessage("签名认证失败");
+ responseResult(response, result);
+ return false;
+ }
+ }
+ });
+ }
+ }
+
+ //解决跨域问题
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ //registry.addMapping("/**");
+ }
+
@Override
public void configureMessageConverters(List> converters) {
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
@@ -57,11 +83,9 @@ public void configureMessageConverters(List> converters)
converters.add(converter);
}
-
- //统一异常处理
@Override
- public void configureHandlerExceptionResolvers(List exceptionResolvers) {
- exceptionResolvers.add(new HandlerExceptionResolver() {
+ public void configureHandlerExceptionResolvers(List resolvers) {
+ resolvers.add(new HandlerExceptionResolver() {
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e) {
Result result = new Result();
if (e instanceof ServiceException) {//业务失败的异常,如“账号或密码错误”
@@ -93,38 +117,6 @@ public ModelAndView resolveException(HttpServletRequest request, HttpServletResp
});
}
- //解决跨域问题
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- //registry.addMapping("/**");
- }
-
- //添加拦截器
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- //接口签名认证拦截器,该签名认证比较简单,实际项目中可以使用Json Web Token或其他更好的方式替代。
- if (!"dev".equals(env)) { //开发环境忽略签名认证
- registry.addInterceptor(new HandlerInterceptorAdapter() {
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- //验证签名
- boolean pass = validateSign(request);
- if (pass) {
- return true;
- } else {
- logger.warn("签名认证失败,请求接口:{},请求IP:{},请求参数:{}",
- request.getRequestURI(), getIpAddress(request), JSON.toJSONString(request.getParameterMap()));
-
- Result result = new Result();
- result.setCode(ResultCode.UNAUTHORIZED).setMessage("签名认证失败");
- responseResult(response, result);
- return false;
- }
- }
- });
- }
- }
-
private void responseResult(HttpServletResponse response, Result result) {
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-type", "application/json;charset=UTF-8");