20 changed files with 386 additions and 200 deletions
@ -1,12 +1,11 @@ |
|||||||
package com.mh.user.annotation; |
package com.mh.user.annotation; |
||||||
import javax.servlet.ServletContextAttributeEvent; |
|
||||||
import javax.servlet.ServletContextAttributeListener; |
import javax.servlet.ServletContextAttributeListener; |
||||||
import javax.servlet.ServletContextEvent; |
import javax.servlet.ServletContextEvent; |
||||||
import javax.servlet.ServletContextListener; |
import javax.servlet.ServletContextListener; |
||||||
import javax.servlet.annotation.WebListener; |
import javax.servlet.annotation.WebListener; |
||||||
|
|
||||||
@WebListener |
@WebListener |
||||||
public class applicationListener implements ServletContextListener,ServletContextAttributeListener{ |
public class ApplicationListener implements ServletContextListener,ServletContextAttributeListener{ |
||||||
|
|
||||||
@Override |
@Override |
||||||
public void contextDestroyed(ServletContextEvent arg0) { |
public void contextDestroyed(ServletContextEvent arg0) { |
@ -0,0 +1,20 @@ |
|||||||
|
package com.mh.user.annotation; |
||||||
|
|
||||||
|
import java.lang.annotation.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author LJF |
||||||
|
* @version 1.0 |
||||||
|
* @project mh_esi |
||||||
|
* @description 缓存变动 |
||||||
|
* @date 2024-11-19 11:36:47 |
||||||
|
*/ |
||||||
|
@Target(ElementType.METHOD) |
||||||
|
@Retention(RetentionPolicy.RUNTIME) |
||||||
|
@Documented |
||||||
|
public @interface CacheChanges { |
||||||
|
|
||||||
|
// 缓存类型
|
||||||
|
String value() default ""; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,75 @@ |
|||||||
|
package com.mh.user.aspect; |
||||||
|
|
||||||
|
import com.mh.common.utils.StringUtils; |
||||||
|
import com.mh.user.annotation.CacheChanges; |
||||||
|
import com.mh.user.entity.MeterManageEntity; |
||||||
|
import com.mh.user.service.DeviceCodeParamService; |
||||||
|
import com.mh.user.service.SysDictService; |
||||||
|
import org.aspectj.lang.JoinPoint; |
||||||
|
import org.aspectj.lang.ProceedingJoinPoint; |
||||||
|
import org.aspectj.lang.annotation.After; |
||||||
|
import org.aspectj.lang.annotation.Around; |
||||||
|
import org.aspectj.lang.annotation.Aspect; |
||||||
|
import org.aspectj.lang.annotation.Pointcut; |
||||||
|
import org.aspectj.lang.reflect.MethodSignature; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.stereotype.Component; |
||||||
|
|
||||||
|
import java.lang.reflect.Method; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author LJF |
||||||
|
* @version 1.0 |
||||||
|
* @project mh_esi |
||||||
|
* @description 缓存数据切面 |
||||||
|
* @date 2024-11-19 11:40:50 |
||||||
|
*/ |
||||||
|
@Aspect |
||||||
|
@Component |
||||||
|
public class CacheChangesAsp { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private SysDictService sysDictService; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private DeviceCodeParamService deviceCodeParamService; |
||||||
|
|
||||||
|
@Pointcut("@annotation(com.mh.user.annotation.CacheChanges)") |
||||||
|
public void cachePointCut() { |
||||||
|
} |
||||||
|
|
||||||
|
@After("cachePointCut()") |
||||||
|
public void afterAdvice(JoinPoint point) throws Throwable { |
||||||
|
// 保存日志
|
||||||
|
updateCacheChanges(point); |
||||||
|
} |
||||||
|
|
||||||
|
private void updateCacheChanges(JoinPoint joinPoint) { |
||||||
|
|
||||||
|
// 获取方法签名
|
||||||
|
MethodSignature signature = (MethodSignature) joinPoint.getSignature(); |
||||||
|
// 获取方法上的注解
|
||||||
|
CacheChanges cacheChanges = signature.getMethod().getAnnotation(CacheChanges.class); |
||||||
|
// 获取值
|
||||||
|
String value = ""; |
||||||
|
if (cacheChanges != null) { |
||||||
|
value = cacheChanges.value(); |
||||||
|
} |
||||||
|
|
||||||
|
// 获取项目id参数
|
||||||
|
Object[] args = joinPoint.getArgs(); |
||||||
|
|
||||||
|
switch (value) { |
||||||
|
case "sys_dict": |
||||||
|
sysDictService.createDictDataCache(); |
||||||
|
break; |
||||||
|
case "device_code_params": |
||||||
|
MeterManageEntity entity = (MeterManageEntity) args[0]; |
||||||
|
deviceCodeParamService.createCodeParams(entity); |
||||||
|
default: |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue