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

做外贸上阿里巴巴什么网站重庆营销网站建设公司

做外贸上阿里巴巴什么网站,重庆营销网站建设公司,做网站要学什么语言,宁波网站关键词排名推广说明 说到对类方法增强#xff0c;第一时间想到自定义注解#xff0c;通过aop切面进行实现。这是一种常用做法#xff0c;但是在某些场景下#xff0c;如开发公共组件#xff0c;定义aop切面可能不是最优方案。以后通过原生aop方式#xff0c;自定义注解#xff0c;对类…说明 说到对类方法增强第一时间想到自定义注解通过aop切面进行实现。这是一种常用做法但是在某些场景下如开发公共组件定义aop切面可能不是最优方案。以后通过原生aop方式自定义注解对类方法进行增强。 实现 自定义注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Documented public interface CustomStat { } 自定义切点 /*** 切点Pointcut按照规则匹配需要代理的方法*/ Slf4j public class CustomPointcut extends StaticMethodMatcherPointcut implements ClassFilter {Overridepublic boolean matches(Class? clazz) {boolean contains clazz.getName().contains(com.spring.demo.service);if (contains) {log.info(CustomPointcut:{},clazz.getName());}return contains;}Overridepublic boolean matches(Method method, Class? targetClass) {boolean contains targetClass.getName().contains(com.spring.demo.service);if (contains) {log.info(CustomPointcut:{},targetClass.getName());}return contains;} } 自定义增强器 public class CustomAnnotationAdvisor extends AbstractPointcutAdvisor implements BeanFactoryAware, Ordered {private Advice advice;private Pointcut pointcut;private MethodInterceptor methodInterceptor;public CustomAnnotationAdvisor(MethodInterceptor methodInterceptor) {this.methodInterceptor methodInterceptor;this.advice buildAdvice();this.pointcut buildPointcut();}Overridepublic Pointcut getPointcut() {return this.pointcut;}Overridepublic Advice getAdvice() {return this.advice;}Overridepublic void setBeanFactory(BeanFactory beanFactory) throws BeansException {if (this.advice instanceof BeanFactoryAware) {((BeanFactoryAware) this.advice).setBeanFactory(beanFactory);}}protected Advice buildAdvice() {return methodInterceptor;}protected Pointcut buildPointcut() {//构建切点Pointcut cpc new AnnotationMatchingPointcut(CustomStat.class, true);Pointcut mpc AnnotationMatchingPointcut.forMethodAnnotation(CustomStat.class);return new ComposablePointcut(cpc).union(mpc);}Overridepublic int getOrder() {return Integer.MAX_VALUE;} } 其中构造参数中的MethodInterceptor为最终代理拦截器 自定义拦截器 Slf4j Component public class CustomAnnotationInterceptor implements MethodInterceptor {Overridepublic Object invoke(MethodInvocation invocation) throws Throwable {//调用的方法和参数//Method method invocation.getMethod();// Object[] arguments invocation.getArguments();log.info(start-注解aop拦截器);Object proceed invocation.proceed();log.info(end-注解aop拦截器);return proceed;} } 注册增强器 Component public class CustomAnnotationBeanPostProcessor extends AbstractAdvisingBeanPostProcessor implements BeanFactoryAware {Resourceprivate CustomAnnotationInterceptor customAnnotationInterceptor;Overridepublic void setBeanFactory(BeanFactory beanFactory) throws BeansException {setBeforeExistingAdvisors(true);CustomAnnotationAdvisor advisor new CustomAnnotationAdvisor(customAnnotationInterceptor);advisor.setBeanFactory(beanFactory);this.advisor advisor;} }测试 OverrideCustomStatpublic void printWork() {System.out.println(WorkServiceImpl1);}结果 2024-05-21 08:55:26.486 INFO 41351 --- [nio-8081-exec-5] c.s.d.a.CustomAnnotationInterceptor : start-注解aop拦截器 WorkServiceImpl1 2024-05-21 08:55:26.486 INFO 41351 --- [nio-8081-exec-5] c.s.d.a.CustomAnnotationInterceptor : end-注解aop拦截器
http://www.dnsts.com.cn/news/239515.html

相关文章:

  • 宁波seo站外优化推广机场建设投资公司官方网站
  • 专业做网站团队有网站后台模板如何做数据库
  • 网站几几年做的怎么查长沙建设工程信息网
  • 免费商城建站视频网站怎么赚钱
  • 赣州做网站的公司有哪家分销怎么做网站开发分销
  • 如何细分行业 做网站赚钱wordpress 免费 主题 下载
  • 精品网站建设费用 搜搜磐石网络wordpress move怎么用
  • 微信、网站提成方案点做友链是什么
  • 铜陵电子商务网站建设苏州装修公司网站建设
  • 做简单网站需要学什么湖南网站推广多少钱
  • wordpress备份整站自动的东莞网站制作公司
  • 腾讯网站建设专家试玩网站开发
  • 有域名了如何建设网站龙岩网站设计找哪家公司
  • 普陀网站建设比较实惠用jsp做校园网站
  • 正能量网站有哪些学习网站二次开发
  • 做软件开发的网站有哪些成都响应式网站建设
  • 单位网站的建设哪家公司做网站便宜
  • 网站建设以及seo为什么网站要域名解析
  • 纹身网站设计杭州logo设计公司哪家好
  • wordpress全站背景公司网站内容建设
  • 360门户网站怎样做作者自己建立的网站
  • 普陀区网站建设公司哪家好电商企业网页设计
  • 深圳网站开发服务上海今天刚刚发生的新闻
  • 企业网站的推广方法有哪些效果图制作属于什么经营范围
  • 建筑网站设置工资单人换了怎么换个人网站怎么建立流程
  • 北京市住房与城乡建设部网站360建站平台
  • 阜蒙县自治区建设学校网站数字创意设计包括哪些案例
  • 小网站开发框架做护肤品好的网站
  • 无锡微信网站建设价格做网站 视频加载太慢
  • 网站空间期限查询建设银行泰州江洲路支行网站