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

有哪些管理系统seo关键词排名优化方法

有哪些管理系统,seo关键词排名优化方法,食品包装设计的相关介绍,三亚8名男女深夜被抓想要环绕拦截一个 Bean 的函数。需要三个前置条件: 通过注解做为“切点”,进行拦截(不能无缘无故给拦了吧?费性能)Bean 的 method 是被代理的在 Bean 被扫描之前,完成环绕拦截的注册 1、定义切点和注册环…

想要环绕拦截一个 Bean 的函数。需要三个前置条件:

  1. 通过注解做为“切点”,进行拦截(不能无缘无故给拦了吧?费性能)
  2. Bean 的 method 是被代理的
  3. 在 Bean 被扫描之前,完成环绕拦截的注册

1、定义切点和注册环绕拦截

Solon 的切点,通过注解实现,得先定义一个。例如:@Logging

//@Target 是决定可以注在什么上面的
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Logging {boolean enable() default true;
}

定义拦截器

//简单点处理
@Slf4j
public class LoggingInterceptor implements Interceptor {@Overridepublic Object doIntercept(Invocation inv) throws Throwable {//此处为拦截处理Object rst = inv.invoke();log.info("Args: {}\nReturn: {}", inv.args(), rst);return rst;}
}//如果需要取注解信息,并进行控制
@Slf4j
public class LoggingInterceptor2 implements Interceptor {@Overridepublic Object doIntercept(Invocation inv) throws Throwable {Logging anno = inv.method().getAnnotation(Logging.class);if (anno == null) {//因为 Logging 支持 ElementType.TYPE,所以也要检查类上的注解anno = inv.target().getClass().getAnnotation(Logging.class);}//此处为拦截处理Object rst = inv.invoke();if(anno != null && anno.enable()){log.info("Args: {}\nReturn: {}", inv.args(), rst);}return rst;}
}

手动注册或关联绑定环绕拦截(二种模式,选一即可)

//手动注册模式
Solon.context().beanAroundAdd(Logging.class, new LoggingInterceptor());//关联绑定模式(通过@Around注解,直接在注解类上关联绑定)
@Around(LoggingInterceptor.class)
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Logging {
}

现在切点定义好了,可以到处“埋”了…

2、应用:把切点“埋”到需要的地方

@Service
public class DemoController{@Loggingpublic void addUser(UserModel user){//...}
}

就这样完成一个面向切面的开发了。

3、通过插件及插件配置,变成一个复用的东西

这是刚才定义注解:

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Logging {
}

开发插件:

@Slf4j
public class XPluginImp implements Plugin {@Overridepublic void start(AopContext context) {context.beanAroundAdd(Logging.class, inv->{Object rst = inv.invoke();log.info("Args: {}\nReturn: {}", inv.args(), rst);});}
}

配置插件:

solon.plugin=xxx.xxx.log.XPluginImp

一个可复用的插件开发完成了。关于Solon插件开发,可参考别的章节内容。

http://www.yayakq.cn/news/708838/

相关文章:

  • 宁波模板建站源码杭州网站优化方案
  • 网站建设实习招聘河南郑州消费情况
  • 网上做设计的网站有哪些东营网站制作公司
  • 社交网站的建设现状佛山大良网站建设招聘
  • 现在做网站公司怎样做网站的优化、排名
  • 电商类网站开发项目书如何利用网络平台挣钱
  • 深圳市盐田区建设局网站定制网站开发报价单
  • 网站建设公司问候语设计师培训招生视频
  • 品牌网站如何做做网站买了域名之后
  • 旅行社 网站系统百度竞价推广教程
  • 益阳建站网站制作网络服务费税收分类编码
  • 石家庄鹿泉网站建设mysqli pdo wordpress
  • 广州住房和城乡建设厅网站研发网站要多长时间
  • 火星建站免费wap自助建站兰州logo设计
  • 网站系统灵活性网页设计大专工资一般多少
  • 网站建设cach目录让网站快速收录最新
  • 网络公司是什么行业seo排名资源
  • 成都市文化馆网站建设重庆seo技术教程
  • 镇江网页设计公司株洲新站seo
  • 建网站公司公司高要网站建设公司
  • 哪里有做网站有限公司破产后债务谁承担
  • 淘宝网站建设的主要工作建一个网站需要什么条件
  • 我的网站百度找不到了澄海建网站
  • 赣州网站设计数字媒体ui设计是做什么的
  • wordpress 随机播放seo常用的优化工具
  • 精品课程网站开发的创新点网页传奇游戏排行榜2022
  • p2p网站开发 源代码深圳华强北电子商城
  • 在线培训网站分销商城开发制作
  • 女性门户网站织梦模板wordpress设置成中文字体
  • 网站制作套餐个人主页不会展示哪些内容