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

自做网站视频seo标题优化的心得总结

自做网站视频,seo标题优化的心得总结,企业网站策划应该怎么做,wordpress 关闭邮件实现思路 首先自定义参数注解,然后根据AOP思想,找到该注解作用的切点,也就是mapper层对于mapper层的接口在执行前都会执行该aop操作:获取到对于的方法对象,根据方法对象获取参数列表,根据参数列表判断某个…
实现思路

首先自定义参数注解,然后根据AOP思想,找到该注解作用的切点,也就是mapper层对于mapper层的接口在执行前都会执行该aop操作:获取到对于的方法对象,根据方法对象获取参数列表,根据参数列表判断某个参数上是否加有自定义的注解,如果有则读取注解中的value值,并通过传入对象的引用拿到该对象,此时判断该对象的id值是否位空,如果为空则生成全局唯一id并赋值

代码实现
package com.cloud.cloud_oj_learn.aspects;import com.cloud.cloud_oj_common.annotations.GenerateId;
import com.cloud.cloud_oj_common.enums.Keys;
import jakarta.annotation.Resource;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;/*** Created with IntelliJ IDEA.* Description:* User: PG* Date: 2024-04-16* Time: 18:49*/
@Aspect
@Component
public class GenerateIdAspect {@Resourceprivate StringRedisTemplate stringRedisTemplate;// 初始时间戳private static final long BEGIN_TIME = 1640995200L;// 序列化位数private static final int BITE = 32;public Long getNext(String tableName) {// 1.生成时间戳LocalDateTime now = LocalDateTime.now();long nowSecond = now.toEpochSecond(ZoneOffset.UTC);long timestamp = nowSecond - BEGIN_TIME;// 2,生成序列化号String date = now.format(DateTimeFormatter.ofPattern("yyyy:MM:dd"));long count = stringRedisTemplate.opsForValue().increment(Keys.GENERATE_ID.getKey() + tableName + ":" + date);// 3.拼接  返回return Long.valueOf(timestamp << BITE | count);}@Before("execution(* com.cloud.cloud_oj_learn.mapper.*.*(..))")public void before(JoinPoint joinPoint) {// 获取方法签名MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();// 获取方法对象Method method = methodSignature.getMethod();// 获取方法参数值数组Object[] args = joinPoint.getArgs();// 获取方法注解Annotation[][] parameterAnnotations = method.getParameterAnnotations();for (int i = 0; i < parameterAnnotations.length; i++) {for (Annotation annotation : parameterAnnotations[i]) {if (annotation instanceof GenerateId) {try {// 获取参数对象Object arg = args[i];// 获取这个对象的类文件Class<?> clazz = arg.getClass();// 获取这个对象的id属性Field idField = clazz.getDeclaredField("id");// 设置字段修改权限idField.setAccessible(true);// 获取注解上的value值String value = ((GenerateId) annotation).value();// 获取该value对应的下一个idLong nextId = getNext(value);// 判断是否为空, 如果为空就赋值 if (idField.get(arg) == null) {idField.set(arg, nextId);}} catch (NoSuchFieldException | IllegalAccessException e) {throw new RuntimeException(e);}}}}}}

图示

http://www.ds6.com.cn/news/24924.html

相关文章:

  • 电子商务网站建设可行性 分析李守洪
  • 太仓有做网站的地方吗最近的新闻大事
  • 优化设计官网网站seo资讯
  • wordpress企业网站开发网络营销推广专家
  • web用框架做网站步骤seo策略主要包括
  • 网站建设杭州最便宜常用网站推广方法及资源
  • 陕西 汽车 网站建设百度云搜索引擎入口官方
  • 网站开发书百度云seo sem什么意思
  • 北京网站备案注销中心百度推广怎么看关键词排名
  • 广东烟草电子商务网站中文搜索引擎有哪些
  • wordpress 循环seo网络推广经理
  • wordpress淘宝客主题模板网络优化网站
  • 小程序源码库泉州seo培训
  • 哈尔滨网络宣传与网站建设百度收录的网站
  • 用家庭宽带做网站杭州网站优化咨询
  • 企业网站怎么扣费的百度2022最新版本
  • 哪家网站建设服务好啊百度指数可以查询多长时间的
  • 深圳公共资源交易中心网站seo优化怎么做
  • 一个公司可以做几个网站吗优速网站建设优化seo
  • 网站开发的人李海涛百度应用商店
  • 网站程序元宁波seo教学
  • 如何做融资网站刷赞抖音推广网站
  • 重庆做网站changekeseo搜索引擎优化试题及答案
  • 阿里云做网站选什么主机搜一搜搜索
  • 重庆做营销网站建设如何进行seo
  • c 建设web网站的流程图cpa推广平台
  • 怎么再贴吧给自己的网站做宣传软文营销网
  • 网站设计市场价河北网络科技有限公司
  • 太原有网站工程公司吗免费b站推广网站短视频
  • 找简历的网站群排名优化软件