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

外贸英文网站设计网站制作费用申请

外贸英文网站设计,网站制作费用申请,网站做优化需要哪些后台信息,网站建设需求说明书想要环绕拦截一个 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/147152/

相关文章:

  • 做全网营销型网站建设服务器创建多个网站吗
  • 怎么免费制作网站sem分析是什么
  • 网站设计机构排行榜北京手工活外发加工网
  • 深圳建设官方网站给彩票网站做排名违法吗
  • 高邮城乡建设局网站天津外贸优化公司
  • 吉安购物网站制作姑苏区做网站
  • 汽车租赁企业网站源码苏州我可以网络科技有限公司
  • 图片编辑器在线个人网站可以做seo吗
  • 惠州网站制作推广公司排名wordpress添加pdf
  • 宁波定制网站建设wordpress主题删除
  • 宁波做外贸网站推广建设购物网站费用
  • 网站如何创建首页青海制作网站多少钱
  • 怎么为一个网站做外链专门做网站的
  • 做网站策划薪酬程序开发是干什么的
  • 亿赐客网站dede批量建站
  • 网站结构是什么专门做进口零食的网站
  • 金融公司网站制作网站数据库要多大
  • 青岛专业做网站的公司用户体验好网站
  • 大兴网站建设多少钱昌网站建设
  • 青岛网站排名推广二建证书查询官网入口
  • 网站建设整个过程惠州+网站建设公司
  • 个人网站建设月租抵30元互联网广告营销
  • cpa怎么做网站网站定制开发加公众号
  • 如何搜名字搜到自己做的网站手机app开发最好的工具
  • 网站开发 前端修改h5模板制作软件
  • 做国际网站怎么发货排版设计教程入门初学者
  • 兰州做网站 咨询兰州做网站公司wordpress博客站点
  • 上海网站排名优化学计算机的出路
  • gateface做网站广州设计网站建设
  • 优秀的电子商务网站wordpress登录回复