当前位置: 首页 > news >正文

linode vps wordpress 两个三亚网站优化

linode vps wordpress 两个,三亚网站优化,深圳建设网站上市,做设计参考的网站我们在使用mybatis的时候会碰到一些公共添加时间,操作人员,更新时间、或者一些分页这个使我们如果要去添加每个对应的- service - dao - mapper - xml 这样就造成很多冗余代码,那这个时候我们就需要使用一些通用方法,统一就行修改…

我们在使用mybatis的时候会碰到一些公共添加时间,操作人员,更新时间、或者一些分页这个使我们如果要去添加每个对应的- service - dao - mapper - xml 这样就造成很多冗余代码,那这个时候我们就需要使用一些通用方法,统一就行修改和赋值。

我们就需要使用到拦截,那我们如何拦截 Mybatis的mapper呢?

我们拦截mapper有两种方法:

1、使用@Aspect注解

要去使用jdk的代理,否则代理不了mapper(即mybatis代理的mapper没有默认的构造器,cglib无法再给这个代理构造代理,会报如下错误

org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy13]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy13)

那我们需要将对@Aspect支持修改为jdk代理

<!-- 启动对@Aspectj的支持 true为cglib,false为jdk代理,为true的话,会导致拦截不了mybatis的mapper-->
<aop:aspectj-autoproxy proxy-target-class="false" />

之后就是使用注解去配置拦截,进行修改记录的操作

@Aspect
@Component
public class DataLogAspect {private static final Logger logger = LoggerFactory.getLogger(DataLogAspect.class);@Resourceprivate ActionMapper actionMapper;@Pointcut("execution(public * com.kingbal.infrastructure.repository.mapper.*.insert*(..)) " +"&& !execution(public * com.kingbal.infrastructure.repository.mapper.ActionMapper.insert*(..))")public void insert(){}@Pointcut("execution(public * com.kingbal.infrastructure.repository.mapper.*.update*(..))")public void update(){}@Pointcut("execution(public * com.kingbal.infrastructure.repository.mapper.*.delete*(..))")public void delete(){}@Around("insert() || update() || delete()")public Object addOperateLog(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {...}
}
2、使用MethodInterceptor

 使用aopalliance的MethodInterceptor

(1)配置文件

        去掉对@Aspect注解的支持(也可以不去掉,只要不是proxy-target-class = true就可以)。然后配置aop

<bean id="dataLogInterceptor" class="com.kingbal.infrastructure.dataLog.dataLogInterceptor" />
<aop:config><aop:pointcut id="dataLogInsertPointCut" expression="execution(* com.kingbal.infrastructure.repository.mapper..insert*(..))&amp;&amp; !execution(* com.kingbal.infrastructure.repository.mapper.ActionMapper.*(..))" /><aop:pointcut id="dataLogUpdatePointCut" expression="execution(* com.kingbal.infrastructure.repository.mapper..update*(..)) &amp;&amp; !execution(* com.kingbal.infrastructure.repository.mapper.ActionMapper.*(..))" /><aop:pointcut id="dataLogDeletePointCut" expression="execution(* com.kingbal.infrastructure.repository.mapper..delete*(..)) &amp;&amp; !execution(* com.kingbal.infrastructure.repository.mapper.ActionMapper.*(..))" /><aop:advisor advice-ref="dataLogInterceptor" pointcut-ref="dataLogInsertPointCut" /><aop:advisor advice-ref="dataLogInterceptor" pointcut-ref="dataLogUpdatePointCut" /><aop:advisor advice-ref="dataLogInterceptor" pointcut-ref="dataLogDeletePointCut" />
</aop:config>

(2)实现MethodInterceptor

public class DataLogInterceptor implements MethodInterceptor{private static final Logger logger = LoggerFactory.getLogger(DataLogInterceptor.class);public DataLogInterceptor() {}@Resourceprivate ActionMapper actionMapper;@Overridepublic Object invoke(MethodInvocation methodInvocation) throws Throwable {Method method = methodInvocation.getMethod();String methodName = method.getName();Class<?> cls = method.getDeclaringClass();Object service = methodInvocation.getThis();Object[] args = methodInvocation.getArguments();Integer actionType = -1; ...}
}

推荐使用 @Aspect

注意事项

1、如果service层有实现接口,则在其他地方注入的时候必须使用接口声明,否则会报错

2、拦截mapper,如果使用注解@Aspect ,必须强制使用JDK代理。

http://www.yayakq.cn/news/170722/

相关文章:

  • 网站建设人员架构中国四大门户网站分别是
  • 网站开发流程分为哪三个阶段网站推广10大方法
  • 电子网站建设ppt模板济南建设工程
  • 国内ui设计网站wordpress 文章图集
  • 广州 网站制网站加地图
  • 鸿兴网站建设公司网站建设与推广策划案案例
  • 什么网站做美式软装设计方案优化是什么意思
  • 营销类网站有哪些手机一键优化
  • 防伪网站怎么做12316网站建设方案
  • 丹东 网站开发wordpress常规地址改错了怎么办
  • 品牌网站建设浩森宇特查企业去哪个网站
  • 厦门工程建设招聘信息网站迅速让一个wordpress
  • 电影网站建设多少钱东莞手机网站建设入门
  • 网站建设柒金手指花总14如何做公司宣传网站
  • 包头全网营销网站建设软件开发和大数据哪个前景好
  • 深圳电子商务网站建设临沂森工木业有限公司
  • 高端私人订制网站建设徐州网站外包
  • 网站跟别的做的一样的微信如何创建自己的小程序
  • 商业网站建设常识网络公司网站建设报价
  • 外贸网站海外推广3个必去网站设计品牌网站公司
  • 西部空间官方网站wordpress zhong
  • 长治招聘网站建设网络平台推广有哪些渠道
  • 网站控制台二手书籍交易网站开发方式
  • 做网站排名有用吗上海装修公司排名榜
  • 广东网站建设哪家专业网站建设注意哪些注意事项
  • 吴江建设局网站上海网站 工作室室
  • 有没有免费学编程的网站一般使用的分辨率显示密度是
  • 乐清网站公司宣传册设计模板
  • 网站文章采集工具不动产登记门户网站建设
  • 画册设计公司网站ipad做电影网站