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

创意视觉网站济南网站建设招标

创意视觉网站,济南网站建设招标,下沙做网站的公司,合肥搭建网站面向切面的编程#xff08;AOP#xff09;就是让哥们写代码的时候更加关注核心业务的实现#xff0c;将核心业务代码前后的日志等不重要的通过注解的方式#xff0c;交给其他部分完成#xff0c;使得代码有更高的可维护性。 具体使用 先定义一个注解 Target(ElementTyp…        面向切面的编程AOP就是让哥们写代码的时候更加关注核心业务的实现将核心业务代码前后的日志等不重要的通过注解的方式交给其他部分完成使得代码有更高的可维护性。 具体使用 先定义一个注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface AutoFill {//数据库操作类型update,insertOperationType value();} 其中OperationType是枚举类可以取两个值update,insert;target表示该注解作用于方法上Retention(RetentionPolicy.RUNTIME)表示该注解会在运行时保留因此可以通过反射机制来读取注解信息。 定义切点 Pointcut(execution(* com.sky.mapper.*.*(..)) annotation(com.sky.annotation.AutoFill))public void autoFillPointCut(){} autoFillPointCut()切点表示所有位于com.sky.mapper下被AutoFill的标识方法是可以被切入即目标。 具体方法 Before(autoFillPointCut())public void autoFill(JoinPoint joinPoint) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {log.info(开始进行公共字段自动填充);//获取到当前被拦截的方法上的数据库操作类型MethodSignature signature (MethodSignature) joinPoint.getSignature();AutoFill autoFill signature.getMethod().getAnnotation(AutoFill.class);OperationType operationType autoFill.value();//获得数据操作类型//获取当前被拦截的方法的参数--实体对象Object[] args joinPoint.getArgs();if(args null || args.length 0) {return;}Object entity args[0];//准备赋值的数据LocalDateTime now LocalDateTime.now();Long currentId BaseContext.getCurrentId();//根据当前不同的操作类型为对应的属性通过反射赋值if(operationType OperationType.INSERT) {Method setCreateTime entity.getClass().getDeclaredMethod(AutoFillConstant.SET_CREATE_TIME, LocalDateTime.class);Method setCreateUser entity.getClass().getDeclaredMethod(AutoFillConstant.SET_CREATE_USER, Long.class);Method setUpdateTime entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_TIME, LocalDateTime.class);Method setUpdateUser entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_USER, Long.class);setCreateTime.invoke(entity,now);setCreateUser.invoke(entity,currentId);setUpdateTime.invoke(entity,now);setUpdateUser.invoke(entity,currentId);}else if(operationType OperationType.UPDATE) {Method setUpdateTime entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_TIME, LocalDateTime.class);Method setUpdateUser entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_USER, Long.class);setUpdateTime.invoke(entity,now);setUpdateUser.invoke(entity,currentId);}} 该方法中的before表示是在切点执行下面定义的方法下述代码完成了业务代码执行前的赋值动作。 目标对象 AutoFill(value OperationType.INSERT)Insert(insert into employee (name,username,password,phone,sex,id_number,create_time,update_time,create_user,update_user,status) values (#{name},#{username},#{password},#{phone},#{sex},#{idNumber},#{createTime},#{updateTime},#{createUser},#{updateUser},#{status}))void insert(Employee employee);在执行insert方法前会先执行AutoFill方法.
http://www.zqtcl.cn/news/400901/

相关文章:

  • 厦门市建设局报表网站南通网站建设计划书
  • 深圳网站建设_模板网站seo
  • 云虚拟主机做网站简单的电商网站开发
  • 注销网站和取消接入深圳建设工程信息价
  • 上海专业网站建设公司站霸网络中国住房和城乡建设部
  • 邯郸做移动网站找谁广西茶叶学会 网站建设
  • 湛江建设网站美乐乐网站首页如何修改
  • 小刘网站建设网络推广和优化是什么意思
  • 特卖网站设计seo优化关键词挖掘
  • 绍兴市交通建设有限公司网站陕西建设分行网站
  • 如何套用别人网站做页面自己创建app
  • 建国内外网站有什么区别永久免费视频会议服务器
  • 个人网站备案成功后怎么做网站开发要学哪些知识
  • 论文写作数据网站餐饮招商
  • 嘉祥网站建设公司小企业网站建设多少钱
  • 做设计.不抠图网站114在线查询电话
  • 上饶网站制作需要多少钱网站百度地图标注
  • 微信网站二次开发广州番禺人才网
  • 支部网站及活动室建设免费建设网站有哪些
  • 深圳福田专业网站推广互联网网站开发有哪些职位
  • 手机网站生成西安北郊做网站
  • 深圳宝安区网站建设南通建设厅网站
  • 介绍做网站的标题在线图片编辑器好用吗
  • 金华建设网站公司笔记本销售网站开发的背景
  • 国外做的好看的网站设计网络营销推广方案怎么做
  • 网站建站业务wordpress网站域名地址
  • 烟台网站制作这做菠菜网站
  • 网站建设vr百度站长
  • 织梦网站广告代码如何写网页设计你若安好便是晴天作业
  • 网站建设 上海wordpress 知更鸟 公告