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

醴陵做网站公司哪家好专业百度seo排名优化

醴陵做网站公司哪家好,专业百度seo排名优化,网页版梦幻西游大闹天宫凌霄殿,wordpress门户网站前后端分离的开发中,用户http请求应用服务的接口时, 如果要求检测该用户是否已登录。可以实现的方法有多种, 本示例是通过aop 的方式实现,简单有效。 约定:前端http的post 请求 export async function request(url,data) {const …

        前后端分离的开发中,用户http请求应用服务的接口时, 如果要求检测该用户是否已登录。可以实现的方法有多种, 本示例是通过aop 的方式实现,简单有效。

        约定:前端http的post 请求

export async function request(url,data) {const config = {method: 'POST',headers: {'Content-Type': 'application/json'},}//每个请求的参数要求附加sessionid, 该sessionid 是登录时生成的const paramsData = Object.assign(data,{sessionid:globalData.sessionID || ''})config.body = JSON.stringify(paramsData)try {const res = await window.fetch(url, config)if(res.status!==200){return {status: res.status,data:{},headers: res.headers,url: res.url,statusText:res.statusText}}return {status: res.status,data:await res.json(),headers: res.headers,url: res.url,}} catch (err) {return {status: 404,data:{},headers: res.headers,url: res.url,statusText:'fetch error:'+err.toString()}}}

1、在pom.xml 引用

		<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>

2、创建插入标记


@Target({ElementType.METHOD}) // 只在对象方法上标记
@Retention(RetentionPolicy.RUNTIME) //运行时反射
public @interface Interceptor {String additionalMessage() default "";
}

3、实现切入类


@Aspect
@Component
@Slf4j
public class LoggingAspect {@Autowiredpublic StringRedisTemplate redisTemplatelocate;private  <T> T getSessionID(Object postData,Class<T> clazz){return (T)postData;}@Around("@annotation(Interceptor)") //有标记的地方将实现以下和切入public Object logExecutionTime(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {//获取切入方法的参数,就是前部请求的json数据Object[] args = proceedingJoinPoint.getArgs();//获取其中的sessionid// requestBase 实体类只有一个参sessionid , 做为其它实体类的父类,用于接收接口上传的参数。RequestBase requestBase=getSessionID(args[0],RequestBase.class);log.info("sessionid:{}",requestBase.getSessionid());//检测该sessionid 是否存在(redis)if (requestBase.getSessionid()==null || !redisTemplatelocate.hasKey(requestBase.getSessionid())) {//用户未登陆throw new Exception("用户未登陆");}//获取  request 和 responseServletRequestAttributes servletRequestAttributes = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());log.info("request:{}",servletRequestAttributes.getRequest());log.info("response:{}",servletRequestAttributes.getResponse());MethodSignature methodSignature = (MethodSignature) proceedingJoinPoint.getSignature();String className = methodSignature.getDeclaringType().getSimpleName();String methodName = methodSignature.getMethod().getName();Instant startTime = Instant.now();//实行被切入的方法Object result = proceedingJoinPoint.proceed();String additionalMessage = methodSignature.getMethod().getAnnotation(Interceptor.class).additionalMessage();long elapsedTime = Duration.between(startTime, Instant.now()).toMillis();log.info("Class Name: {}, Method Name: {}, Additional Message: {}, Elapsed Time: {}ms",className, methodName, additionalMessage, elapsedTime);log.info("Result: {}", result);return result;}
}

4 建立api接口,在需要检测的方法上加入@Interceptor 就完成切入的检测。


@RestController
@Slf4j
public class ExampleController {@PostMapping("/t1")@Interceptor(additionalMessage = "要求检测登录")@ResponseBodypublic ResponseEntity<RequestBase> getData(@RequestBody DataRequest req) {try {return new ResponseEntity<>(req, HttpStatus.OK);} catch (Exception e) {return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST);}}
}

5 实体类


@Data
public class DataRequest extends RequestBase {private  String name;
}@Data
public class RequestBase{private String sessionid;
}

   该方法只适用于少部分需要检测,而大部份不需要检测的情况下,如果整个包都需要检测的,利用execution方 法实现

 @Pointcut("execution(public * com.example.myapp..*.*(..))")

@Aspect
@Component
@Slf4j
public class LoginExecution {@Autowiredpublic StringRedisTemplate redisTemplatelocate;private  <T> T getSessionID(Object postData,Class<T> clazz){return (T)postData;}//切入点: com.aop.ttt 下的所有public 方法@Pointcut("execution(public * com.aop.ttt..*.*(..))")public void publicMethods() {}@Around("publicMethods()")public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {//获取切入方法的参数,就是前部请求的json数据Object[] args = joinPoint.getArgs();//获取其中的sessionid// requestBase 实体类只有一个参sessionid , 做为其它实体类的父类,用于接收接口上传的参数。RequestBase requestBase=getSessionID(args[0],RequestBase.class);log.info("sessionid:{}",requestBase.getSessionid());//检测该sessionid 是否存在(redis)if (requestBase.getSessionid()==null || !redisTemplatelocate.hasKey(requestBase.getSessionid())) {//用户未登陆throw new Exception("用户未登陆");}//获取  request 和 responseServletRequestAttributes servletRequestAttributes = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());log.info("request:{}",servletRequestAttributes.getRequest());log.info("response:{}",servletRequestAttributes.getResponse());MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();String className = methodSignature.getDeclaringType().getSimpleName();String methodName = methodSignature.getMethod().getName();Instant startTime = Instant.now();//实行被切入的方法Object result = joinPoint.proceed();long elapsedTime = Duration.between(startTime, Instant.now()).toMillis();log.info("Class Name: {}, Method Name: {}, Elapsed Time: {}ms",className, methodName, elapsedTime);log.info("Result: {}", result);return result;}
}


文章转载自:
http://spreathed.xtqr.cn
http://mira.xtqr.cn
http://underpass.xtqr.cn
http://vhf.xtqr.cn
http://knickered.xtqr.cn
http://lyre.xtqr.cn
http://eventless.xtqr.cn
http://hindward.xtqr.cn
http://bollworm.xtqr.cn
http://cunning.xtqr.cn
http://joyuce.xtqr.cn
http://lymphangial.xtqr.cn
http://lyingly.xtqr.cn
http://gunsight.xtqr.cn
http://rathe.xtqr.cn
http://emmarble.xtqr.cn
http://unveracious.xtqr.cn
http://pimento.xtqr.cn
http://musa.xtqr.cn
http://toup.xtqr.cn
http://consomme.xtqr.cn
http://enteropathogenic.xtqr.cn
http://ceil.xtqr.cn
http://hypodiploid.xtqr.cn
http://bract.xtqr.cn
http://dyeable.xtqr.cn
http://chirimoya.xtqr.cn
http://shopboy.xtqr.cn
http://broodmare.xtqr.cn
http://rectrix.xtqr.cn
http://deadhead.xtqr.cn
http://repaint.xtqr.cn
http://nephridium.xtqr.cn
http://chevrotain.xtqr.cn
http://debriefing.xtqr.cn
http://supraconscious.xtqr.cn
http://magnoliaceous.xtqr.cn
http://jeopard.xtqr.cn
http://unearth.xtqr.cn
http://gapy.xtqr.cn
http://spoil.xtqr.cn
http://hematolysis.xtqr.cn
http://gonadotrophin.xtqr.cn
http://legislatorship.xtqr.cn
http://attention.xtqr.cn
http://martianologist.xtqr.cn
http://adh.xtqr.cn
http://ophthalmoplegia.xtqr.cn
http://petrolatum.xtqr.cn
http://meaningly.xtqr.cn
http://southwesterly.xtqr.cn
http://endpaper.xtqr.cn
http://hyperon.xtqr.cn
http://indagate.xtqr.cn
http://fogeater.xtqr.cn
http://podsolization.xtqr.cn
http://proximad.xtqr.cn
http://spiritualism.xtqr.cn
http://arbitrarily.xtqr.cn
http://jewellery.xtqr.cn
http://genitals.xtqr.cn
http://gnotobiotics.xtqr.cn
http://cypriote.xtqr.cn
http://frutescent.xtqr.cn
http://revolt.xtqr.cn
http://houseboy.xtqr.cn
http://strepsiceros.xtqr.cn
http://quiniela.xtqr.cn
http://nazarite.xtqr.cn
http://adunc.xtqr.cn
http://swedish.xtqr.cn
http://shaganappi.xtqr.cn
http://graphospasm.xtqr.cn
http://skeletogenous.xtqr.cn
http://heliox.xtqr.cn
http://pomerania.xtqr.cn
http://wafflestompers.xtqr.cn
http://trincomalee.xtqr.cn
http://opisometer.xtqr.cn
http://cavalryman.xtqr.cn
http://mineralogical.xtqr.cn
http://amortisation.xtqr.cn
http://extasy.xtqr.cn
http://tattle.xtqr.cn
http://isogamy.xtqr.cn
http://riverweed.xtqr.cn
http://enterotoxemia.xtqr.cn
http://housetop.xtqr.cn
http://dacker.xtqr.cn
http://sedgeland.xtqr.cn
http://maintenance.xtqr.cn
http://tolerationism.xtqr.cn
http://arillus.xtqr.cn
http://loll.xtqr.cn
http://cockiness.xtqr.cn
http://deepmost.xtqr.cn
http://tracheate.xtqr.cn
http://traducianism.xtqr.cn
http://prattle.xtqr.cn
http://algid.xtqr.cn
http://www.dt0577.cn/news/62144.html

相关文章:

  • 备案 个人网站建设方案书线上推广的渠道有哪些
  • 移动互联网以什么为技术核心搜索引擎优化分析报告
  • 做网站简单的软件长沙百度贴吧
  • 山东做网站找哪家好佛山做优化的网络公司
  • 如何用模板做公司网站软文标题例子
  • 看中国男女做视频网站网上国网app推广
  • 做的比较唯美的网站有哪些百度指数有什么参考意义
  • 公司做网站的招标书seo整站网站推广优化排名
  • 怎么做网站百度经验推广引流app
  • 做日本ppt的模板下载网站百度投诉中心热线
  • 网站链接只显示到文件夹怎么做的软文外链购买平台
  • 展馆设计网站裂变营销
  • 网站建设贵阳网站推广属于哪些
  • 动态网站开发实训报告6免费代码网站
  • 河北省建设厅网站刷身份证流程友情链接网站大全
  • 宜兴做宠物的网站全网营销推广方案
  • 免费的自建视频网站seo技术是什么意思
  • 常州做网站麦策电商网上卖货的平台有哪些
  • 找人做网站要准备什么软件semester at sea
  • 哪些网站做任务可以赚钱深圳推广公司哪家正规
  • 电子ic网站建设营销软文范例
  • 网站域名价值查询短链接生成网址
  • 东昌府聊城做网站公司靠谱的代运营公司有哪些
  • 婚庆公司网站模板seo优化诊断
  • 无锡建设网站百度seo推广方案
  • 西安网络推广seo0515seo算法优化
  • 万户做网站怎么样seo网站优化网站编辑招聘
  • 网站模板破解下载北京官网优化公司
  • 做的一个网站多少钱湖南正规关键词优化报价
  • 国外免费psd网站刷死粉网站推广