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

任丘哪里做网站搜索引擎营销的优势和劣势

任丘哪里做网站,搜索引擎营销的优势和劣势,垂直搜索引擎,网站备案期间 权重我们在使用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.dinnco.com/news/70670.html

相关文章:

  • 吉林市 网站建设网络推广专员
  • 上海最专业的网站设计制怎么在百度推广
  • 厦门做网站的公司网络技术推广服务
  • 做a的网站有哪些沧浪seo网站优化软件
  • 网站怎样和首页做链接seo顾问什么职位
  • 提升学历哪种方式含金量高优化快速排名教程
  • web前端可以做网站吗seo推广一个月见效
  • 视频网站开发前景如何网站优化分析
  • 阿里云服务器管理长沙网站优化效果
  • 厦门模版网站百度公司怎么样
  • 重新做网站seo软件推广
  • 下城网站建设新闻联播俄罗斯与乌克兰
  • 珠海seo海网站建设广告联盟点击赚钱平台
  • wordpress代码运行插件吗如何seo网站推广
  • 学校网站建设分析引流推广方法
  • 城管局网站建设方案网络营销管理办法
  • 用哪个网站做相册视频文件夹外国网站怎么进入
  • 安徽省政府网站建设招标站长素材官网免费
  • 网站建设费 摊销处理宁波seo网络推广软件系统
  • 代做毕网站企业品牌类网站有哪些
  • 怎样做克隆网站谷歌平台推广外贸
  • 学做网站网十大新媒体平台有哪些
  • java如何做网站seo网站优化服务
  • 网站开发外包 价格违禁网站用什么浏览器
  • 外贸企业商城网站建设seowhy
  • 印刷网站源码国内b站不收费网站有哪些
  • 网站后台栏目管理百度经验官网首页
  • 云南省保山建设网站百度热搜榜第一
  • 东莞设计网站服务的公司成年s8视频加密线路
  • 公司做网站的价格爱站网站seo查询工具