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

网站开发后端做那些高级搜索引擎技巧

网站开发后端做那些,高级搜索引擎技巧,做电子商城网站,做美食教程的网站目录 1 前言 2 使用方法 2.1 自定义枚举类 2.2 自定义注解AutoFill 2.3 自定义切面类并设定切入点 2.4 切面类中设置前置通知,对公共字段赋值 2.5 在方法上添加自定义注解 3 最后 1 前言 在我们的项目中,项目表可能会有一些公共的字段需要我们的…

目录

1 前言

2 使用方法

2.1 自定义枚举类

2.2 自定义注解@AutoFill

2.3 自定义切面类并设定切入点

2.4 切面类中设置前置通知,对公共字段赋值

2.5 在方法上添加自定义注解

3 最后


1 前言

在我们的项目中,项目表可能会有一些公共的字段需要我们的赋值,比如更新时间(updateTime)等。如果我们每次都手动的进行设置,那么代码将比较冗余且不易于维护。接下来我将介绍公共字段的自动填充,来优雅的解决这个问题。

2 使用方法

2.1 自定义枚举类

该步骤用于标识数据库的操作类型,如下:

public enum OperationType {/*** 更新操作*/UPDATE,/*** 插入操作*/INSERT}

2.2 自定义注解@AutoFill

该步骤用于标识需要进行公共字段自动填充的方法,如下:

@Target(ElementType.METHOD)    //表示该注解是用于方法上的
@Retention(RetentionPolicy.RUNTIME)    //表示该注解一直保留到运行时
public @interface AutoFill {// 自动填充的操作类型: Update,InsertOperationType value();
}

2.3 自定义切面类并设定切入点

@Aspect
@Component
public class AutoFillAspect {/*** 符合以下要求的为切入点:* 1.mapper包下任意类中参数和返回值任意的所有方法* 2.方法上必须含我们刚才定义的AutoFill注解*/@Pointcut("execution(* com.xxx.mapper.*.*(..)) && @annotation(com.xxx.annotation.AutoFill)")public void autoFillPointCut() {}
}

2.4 切面类中设置前置通知,对公共字段赋值

@Aspect
@Component
public class AutoFillAspect {@Pointcut("execution(* com.sky.mapper.*.*(..)) && @annotation(com.sky.annotation.AutoFill)")public void autoFillPointCut() {}/*** 前置通知,在通知中进行公共字段的赋值*/@Before("autoFillPointCut()")public void autoFill(JoinPoint joinPoint) {//获取拦截方法上的操作类型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.UPDATE) {try {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);} catch (Exception e) {e.printStackTrace();}} else if (operationType == OperationType.INSERT) {//其它代码...}}
}

2.5 在方法上添加自定义注解

@Mapper
public interface MyClassMapper {/*** 根据id修改分类* @param category*/@AutoFill(value = OperationType.UPDATE)void update(MyClass myClass);
}

这样我们就不需要在服务层中为手动添加相关内容了,解放双手。

3 最后

另附赠注释如下,愿永无bug:

/**                        _oo0oo_*                       o8888888o*                       88" . "88*                       (| -_- |)*                       0\  =  /0*                     ___/`---'\___*                   .' \\|     |// '.*                  / \\|||  :  |||// \*                 / _||||| -:- |||||- \*                |   | \\\  - /// |   |*                | \_|  ''\---/''  |_/ |*                \  .-\__  '-'  ___/-. /*              ___'. .'  /--.--\  `. .'___*           ."" '<  `.___\_<|>_/___.' >' "".*          | | :  `- \`.;`\ _ /`;.`/ - ` : | |*          \  \ `_.   \_ __\ /__ _/   .-` /  /*      =====`-.____`.___ \_____/___.-`___.-'=====*                        `=---='***      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**            佛祖保佑     永不宕机     永无BUG**        佛曰:*                写字楼里写字间,写字间里程序员;*                程序人员写程序,又拿程序换酒钱。*                酒醒只在网上坐,酒醉还来网下眠;*                酒醉酒醒日复日,网上网下年复年。*                但愿老死电脑间,不愿鞠躬老板前;*                奔驰宝马贵者趣,公交自行程序员。*                别人笑我忒疯癫,我笑自己命太贱;*                不见满街漂亮妹,哪个归得程序员?*/
http://www.hkea.cn/news/3861/

相关文章:

  • 权威的网站制作上海网站推广公司
  • 北京网站建设公司现状网站收录量
  • b2c网站的认识市场营销方案怎么写
  • 中国公路工程建设网站淘宝搜索关键词技巧
  • 空间中国网站地址多少网络推广与优化
  • 东莞定制网站开发石家庄网络关键词排名
  • 如何做网站搭桥链接百度快照客服电话
  • cdn wordpress 统计扬州整站seo
  • 如何做自己的电影网站焊工培训
  • 网站建设 福田上海网站排名优化怎么做
  • 地产渠道12种拓客方式上海专业的seo公司
  • 日照哪里做网站电商网站网址
  • 武汉 网站建设下载谷歌浏览器并安装
  • 上海公安门户网站官网下载中心网站推广公司
  • 中国建设网站银行卡青岛网站制作seo
  • 帮别人做ppt赚钱的网站淘特app推广代理
  • 合肥网站建设=388元杭州seo排名收费
  • 企业所得税税率2022年最新税率表seo快速排名代理
  • 商品网站做推广方案提交网站收录入口
  • 建设常规的网站报价是多少建网站免费
  • 设计师导航网站seo是什么职务
  • 网站开发的语言有什么软件企业品牌推广
  • 深圳室内设计公司招聘怎样给自己的网站做优化
  • 百度搜索广告百度seo排名优化软件化
  • 大连网站建设怎么做域名注册平台哪个好
  • wordpress开启子站吸引人气的营销方案
  • 大学网站建设的意义产品宣传
  • 网站推广活动策划百度官网首页下载
  • 安家堡网站建设免费的网站推广软件
  • 大庆做网站的公司军事新闻最新