通用日志记录
This commit is contained in:
parent
8dde877a9f
commit
2d4dc7e0c1
@ -31,6 +31,7 @@ crud操作demo | ✔
|
|||||||
集成监控功能 | ✔
|
集成监控功能 | ✔
|
||||||
包结构调整 | ✔
|
包结构调整 | ✔
|
||||||
SpringSecurity登录改为Restful形式 |
|
SpringSecurity登录改为Restful形式 |
|
||||||
|
SpringAOP通用日志处理 |
|
||||||
|
|
||||||
### 功能完善
|
### 功能完善
|
||||||
|
|
||||||
|
@ -51,6 +51,10 @@
|
|||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-aop</artifactId>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.springfox</groupId>
|
<groupId>io.springfox</groupId>
|
||||||
<artifactId>springfox-swagger2</artifactId>
|
<artifactId>springfox-swagger2</artifactId>
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
package com.macro.mall.component;
|
||||||
|
|
||||||
|
import org.aspectj.lang.JoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.AfterReturning;
|
||||||
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.Before;
|
||||||
|
import org.aspectj.lang.annotation.Pointcut;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统一日志处理切面
|
||||||
|
*/
|
||||||
|
@Aspect
|
||||||
|
@Component
|
||||||
|
public class WebLogAspect {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class);
|
||||||
|
private ThreadLocal<Long> startTime = new ThreadLocal<>();
|
||||||
|
|
||||||
|
@Pointcut("execution(public * com.macro.mall.controller.*.*(..))")
|
||||||
|
public void webLog() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Before("webLog()")
|
||||||
|
public void doBefore(JoinPoint joinPoint) throws Throwable {
|
||||||
|
startTime.set(System.currentTimeMillis());
|
||||||
|
//获取当前请求对象
|
||||||
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
|
HttpServletRequest request = attributes.getRequest();
|
||||||
|
//记录请求信息(可以记录到数据库中)
|
||||||
|
String classMethod = joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName();
|
||||||
|
String args = Arrays.toString(joinPoint.getArgs());
|
||||||
|
LOGGER.info("HTTP URL:{}; HTTP_METHOD:{}; IP:{}; CLASS_METHOD:{}; ARGS:{}",
|
||||||
|
request.getRequestURL(), request.getMethod(), request.getRemoteAddr(), classMethod, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterReturning(value = "webLog()", returning = "ret")
|
||||||
|
public void doAfterReturning(Object ret) throws Throwable {
|
||||||
|
long costTime = System.currentTimeMillis() - startTime.get();
|
||||||
|
LOGGER.info("RESPONSE:{}; COST_TIME:{}ms", ret, costTime);
|
||||||
|
}
|
||||||
|
}
|
@ -25,8 +25,6 @@ public class PmsBrandController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PmsBrandService brandService;
|
private PmsBrandService brandService;
|
||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class);
|
|
||||||
|
|
||||||
@ApiOperation(value = "获取全部品牌列表")
|
@ApiOperation(value = "获取全部品牌列表")
|
||||||
@RequestMapping(value = "/listAll", method = RequestMethod.GET)
|
@RequestMapping(value = "/listAll", method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@ -45,10 +43,8 @@ public class PmsBrandController {
|
|||||||
int count = brandService.createBrand(pmsBrand);
|
int count = brandService.createBrand(pmsBrand);
|
||||||
if (count == 1) {
|
if (count == 1) {
|
||||||
commonResult = new CommonResult().success(pmsBrand);
|
commonResult = new CommonResult().success(pmsBrand);
|
||||||
LOGGER.debug("createBrand success:{}", pmsBrand);
|
|
||||||
} else {
|
} else {
|
||||||
commonResult = new CommonResult().failed();
|
commonResult = new CommonResult().failed();
|
||||||
LOGGER.debug("createBrand failed:{}", pmsBrand);
|
|
||||||
}
|
}
|
||||||
return commonResult;
|
return commonResult;
|
||||||
}
|
}
|
||||||
@ -64,10 +60,8 @@ public class PmsBrandController {
|
|||||||
int count = brandService.updateBrand(id, pmsBrandParam);
|
int count = brandService.updateBrand(id, pmsBrandParam);
|
||||||
if (count == 1) {
|
if (count == 1) {
|
||||||
commonResult = new CommonResult().success(pmsBrandParam);
|
commonResult = new CommonResult().success(pmsBrandParam);
|
||||||
LOGGER.debug("updateBrand success:{}", pmsBrandParam);
|
|
||||||
} else {
|
} else {
|
||||||
commonResult = new CommonResult().failed();
|
commonResult = new CommonResult().failed();
|
||||||
LOGGER.debug("updateBrand failed:{}", pmsBrandParam);
|
|
||||||
}
|
}
|
||||||
return commonResult;
|
return commonResult;
|
||||||
}
|
}
|
||||||
@ -78,10 +72,8 @@ public class PmsBrandController {
|
|||||||
public Object deleteBrand(@PathVariable("id") Long id) {
|
public Object deleteBrand(@PathVariable("id") Long id) {
|
||||||
int count = brandService.deleteBrand(id);
|
int count = brandService.deleteBrand(id);
|
||||||
if (count == 1) {
|
if (count == 1) {
|
||||||
LOGGER.debug("deleteBrand success:id={}", id);
|
|
||||||
return new CommonResult().success(null);
|
return new CommonResult().success(null);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("deleteBrand failed:id={}", id);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -108,10 +100,8 @@ public class PmsBrandController {
|
|||||||
public Object deleteBrandBatch(@RequestParam("ids") List<Long> ids) {
|
public Object deleteBrandBatch(@RequestParam("ids") List<Long> ids) {
|
||||||
int count = brandService.deleteBrand(ids);
|
int count = brandService.deleteBrand(ids);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
LOGGER.debug("deleteBrandBatch success:ids={}", ids);
|
|
||||||
return new CommonResult().success(count);
|
return new CommonResult().success(count);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("deleteBrandBatch failed:ids={}", ids);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -123,10 +113,8 @@ public class PmsBrandController {
|
|||||||
@RequestParam("showStatus") Integer showStatus) {
|
@RequestParam("showStatus") Integer showStatus) {
|
||||||
int count = brandService.updateShowStatus(ids, showStatus);
|
int count = brandService.updateShowStatus(ids, showStatus);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
LOGGER.debug("updateShowStatus success:ids={}", ids);
|
|
||||||
return new CommonResult().success(count);
|
return new CommonResult().success(count);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("updateShowStatus failed:ids={}", ids);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -138,10 +126,8 @@ public class PmsBrandController {
|
|||||||
@RequestParam("factoryStatus") Integer factoryStatus) {
|
@RequestParam("factoryStatus") Integer factoryStatus) {
|
||||||
int count = brandService.updateFactoryStatus(ids, factoryStatus);
|
int count = brandService.updateFactoryStatus(ids, factoryStatus);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
LOGGER.debug("updateFactoryStatus success:{}", ids);
|
|
||||||
return new CommonResult().success(count);
|
return new CommonResult().success(count);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("updateFactoryStatus failed:{}", ids);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ import java.util.List;
|
|||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/productAttribute/category")
|
@RequestMapping("/productAttribute/category")
|
||||||
public class PmsProductAttributeCategoryController {
|
public class PmsProductAttributeCategoryController {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(PmsProductAttributeCategoryController.class);
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PmsProductAttributeCategoryService productAttributeCategoryService;
|
private PmsProductAttributeCategoryService productAttributeCategoryService;
|
||||||
|
|
||||||
@ -28,10 +27,8 @@ public class PmsProductAttributeCategoryController {
|
|||||||
public Object create(@RequestParam String name) {
|
public Object create(@RequestParam String name) {
|
||||||
int count = productAttributeCategoryService.create(name);
|
int count = productAttributeCategoryService.create(name);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
LOGGER.debug("create success name:{}", name);
|
|
||||||
return new CommonResult().success(count);
|
return new CommonResult().success(count);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("create failed name:{}", name);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -42,10 +39,8 @@ public class PmsProductAttributeCategoryController {
|
|||||||
public Object update(@PathVariable Long id, @RequestParam String name) {
|
public Object update(@PathVariable Long id, @RequestParam String name) {
|
||||||
int count = productAttributeCategoryService.update(id, name);
|
int count = productAttributeCategoryService.update(id, name);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
LOGGER.debug("update success id:{}", id);
|
|
||||||
return new CommonResult().success(count);
|
return new CommonResult().success(count);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("update failed id:{}", id);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -56,10 +51,8 @@ public class PmsProductAttributeCategoryController {
|
|||||||
public Object delete(@PathVariable Long id) {
|
public Object delete(@PathVariable Long id) {
|
||||||
int count = productAttributeCategoryService.delete(id);
|
int count = productAttributeCategoryService.delete(id);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
LOGGER.debug("delete success name:{}", id);
|
|
||||||
return new CommonResult().success(count);
|
return new CommonResult().success(count);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("delete failed name:{}", id);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.macro.mall.controller;
|
||||||
|
|
||||||
|
import com.macro.mall.service.PmsProductAttributeService;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品属性管理Controller
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/productAttribute")
|
||||||
|
public class PmsProductAttributeController {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(PmsProductAttributeController.class);
|
||||||
|
@Autowired
|
||||||
|
private PmsProductAttributeService productAttributeService;
|
||||||
|
}
|
@ -21,7 +21,6 @@ import java.util.List;
|
|||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/productCategory")
|
@RequestMapping("/productCategory")
|
||||||
public class PmsProductCategoryController {
|
public class PmsProductCategoryController {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(PmsProductCategoryController.class);
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PmsProductCategoryService productCategoryService;
|
private PmsProductCategoryService productCategoryService;
|
||||||
|
|
||||||
@ -34,10 +33,8 @@ public class PmsProductCategoryController {
|
|||||||
}
|
}
|
||||||
int count = productCategoryService.create(pmsProductCategoryParam);
|
int count = productCategoryService.create(pmsProductCategoryParam);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
LOGGER.debug("create success {}", pmsProductCategoryParam);
|
|
||||||
return new CommonResult().success(count);
|
return new CommonResult().success(count);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("create failed {}", pmsProductCategoryParam);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -54,10 +51,8 @@ public class PmsProductCategoryController {
|
|||||||
}
|
}
|
||||||
int count = productCategoryService.update(id, pmsProductCategoryParam);
|
int count = productCategoryService.update(id, pmsProductCategoryParam);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
LOGGER.debug("update success {}", pmsProductCategoryParam);
|
|
||||||
return new CommonResult().success(count);
|
return new CommonResult().success(count);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("update failed {}", pmsProductCategoryParam);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -78,10 +73,8 @@ public class PmsProductCategoryController {
|
|||||||
public Object delete(@PathVariable Long id) {
|
public Object delete(@PathVariable Long id) {
|
||||||
int count = productCategoryService.delete(id);
|
int count = productCategoryService.delete(id);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
LOGGER.debug("delete success id:{}", id);
|
|
||||||
return new CommonResult().success(count);
|
return new CommonResult().success(count);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.debug("delete failed id:{}", id);
|
|
||||||
return new CommonResult().failed();
|
return new CommonResult().failed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.macro.mall.dto;
|
package com.macro.mall.dto;
|
||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import com.macro.mall.util.JsonUtils;
|
||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -76,6 +77,11 @@ public class CommonResult {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return JsonUtils.objectToJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
public int getCode() {
|
public int getCode() {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.macro.mall.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品属性Service
|
||||||
|
*/
|
||||||
|
public interface PmsProductAttributeService {
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.macro.mall.service.impl;
|
||||||
|
|
||||||
|
import com.macro.mall.mapper.PmsProductAttributeMapper;
|
||||||
|
import com.macro.mall.service.PmsProductAttributeService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品属性Service实现类
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class PmsProductAttributeServiceImpl implements PmsProductAttributeService{
|
||||||
|
@Autowired
|
||||||
|
private PmsProductAttributeMapper productAttributeMapper;
|
||||||
|
}
|
71
mall-admin/src/main/java/com/macro/mall/util/JsonUtils.java
Normal file
71
mall-admin/src/main/java/com/macro/mall/util/JsonUtils.java
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
package com.macro.mall.util;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.JavaType;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 淘淘商城自定义响应结构
|
||||||
|
*/
|
||||||
|
public class JsonUtils {
|
||||||
|
|
||||||
|
// 定义jackson对象
|
||||||
|
private static final ObjectMapper MAPPER = new ObjectMapper();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将对象转换成json字符串。
|
||||||
|
* <p>Title: pojoToJson</p>
|
||||||
|
* <p>Description: </p>
|
||||||
|
* @param data
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String objectToJson(Object data) {
|
||||||
|
try {
|
||||||
|
String string = MAPPER.writeValueAsString(data);
|
||||||
|
return string;
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将json结果集转化为对象
|
||||||
|
*
|
||||||
|
* @param jsonData json数据
|
||||||
|
* @param beanType 对象中的object类型
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
|
||||||
|
try {
|
||||||
|
T t = MAPPER.readValue(jsonData, beanType);
|
||||||
|
return t;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将json数据转换成pojo对象list
|
||||||
|
* <p>Title: jsonToList</p>
|
||||||
|
* <p>Description: </p>
|
||||||
|
* @param jsonData
|
||||||
|
* @param beanType
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
|
||||||
|
JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
|
||||||
|
try {
|
||||||
|
List<T> list = MAPPER.readValue(jsonData, javaType);
|
||||||
|
return list;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user