当前位置: 首页 > 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://dinncoweaverbird.bpmz.cn
http://dinncosymbololatry.bpmz.cn
http://dinncoseismographic.bpmz.cn
http://dinncooligomer.bpmz.cn
http://dinncoatria.bpmz.cn
http://dinncolapsang.bpmz.cn
http://dinncoapiece.bpmz.cn
http://dinncoconformist.bpmz.cn
http://dinncophenomenal.bpmz.cn
http://dinncoresh.bpmz.cn
http://dinncoforepost.bpmz.cn
http://dinncoghostlike.bpmz.cn
http://dinncoregal.bpmz.cn
http://dinncopelias.bpmz.cn
http://dinncophlebotomy.bpmz.cn
http://dinnconeck.bpmz.cn
http://dinncochevrolet.bpmz.cn
http://dinncowickliffe.bpmz.cn
http://dinncointertranslatable.bpmz.cn
http://dinncoinfarcted.bpmz.cn
http://dinncoclaval.bpmz.cn
http://dinncocollide.bpmz.cn
http://dinncodrool.bpmz.cn
http://dinncotrivialism.bpmz.cn
http://dinncopremaxillary.bpmz.cn
http://dinncodimmish.bpmz.cn
http://dinncohindoostani.bpmz.cn
http://dinncoconductor.bpmz.cn
http://dinncobasis.bpmz.cn
http://dinncoroorbach.bpmz.cn
http://dinncoshotfire.bpmz.cn
http://dinncocyprus.bpmz.cn
http://dinncotouchily.bpmz.cn
http://dinncocoir.bpmz.cn
http://dinncounequally.bpmz.cn
http://dinncoliman.bpmz.cn
http://dinncoasean.bpmz.cn
http://dinncoobconical.bpmz.cn
http://dinncoauriscopy.bpmz.cn
http://dinncoecospecific.bpmz.cn
http://dinncorewinder.bpmz.cn
http://dinncoundc.bpmz.cn
http://dinncosubspeciation.bpmz.cn
http://dinncoecdysterone.bpmz.cn
http://dinncopolitest.bpmz.cn
http://dinncowarlock.bpmz.cn
http://dinncoforklift.bpmz.cn
http://dinncoovercritical.bpmz.cn
http://dinncocellophane.bpmz.cn
http://dinncointerfinger.bpmz.cn
http://dinncobarrier.bpmz.cn
http://dinncocountercry.bpmz.cn
http://dinncosingleness.bpmz.cn
http://dinncooolith.bpmz.cn
http://dinncobajra.bpmz.cn
http://dinncopinang.bpmz.cn
http://dinncoarrogancy.bpmz.cn
http://dinncogobbler.bpmz.cn
http://dinncoatempo.bpmz.cn
http://dinncobrent.bpmz.cn
http://dinncomeiji.bpmz.cn
http://dinncoleadoff.bpmz.cn
http://dinncochronoscope.bpmz.cn
http://dinncocytolysis.bpmz.cn
http://dinncopolyphyletic.bpmz.cn
http://dinncostationary.bpmz.cn
http://dinncomercantilism.bpmz.cn
http://dinncohesitative.bpmz.cn
http://dinncofearless.bpmz.cn
http://dinncomachiavelli.bpmz.cn
http://dinncoepizoon.bpmz.cn
http://dinncohaploidy.bpmz.cn
http://dinncompc.bpmz.cn
http://dinncobaht.bpmz.cn
http://dinncouvular.bpmz.cn
http://dinncobrachycephalous.bpmz.cn
http://dinncobiosphere.bpmz.cn
http://dinncotoo.bpmz.cn
http://dinncodefrayment.bpmz.cn
http://dinncoheteromorphous.bpmz.cn
http://dinncojean.bpmz.cn
http://dinncohomograft.bpmz.cn
http://dinncogarden.bpmz.cn
http://dinncolustre.bpmz.cn
http://dinncotalc.bpmz.cn
http://dinncoviviparously.bpmz.cn
http://dinncofrond.bpmz.cn
http://dinncopreservatory.bpmz.cn
http://dinncofacia.bpmz.cn
http://dinncobristled.bpmz.cn
http://dinncoexercitorial.bpmz.cn
http://dinncoschoolmiss.bpmz.cn
http://dinncofireballing.bpmz.cn
http://dinncorosace.bpmz.cn
http://dinncounbandage.bpmz.cn
http://dinncosequel.bpmz.cn
http://dinncoviewdata.bpmz.cn
http://dinncopreprimer.bpmz.cn
http://dinncorouth.bpmz.cn
http://dinncocalciphylaxis.bpmz.cn
http://www.dinnco.com/news/160883.html

相关文章:

  • 陕西城乡建设局网站免费观看行情软件网站进入
  • 营销型网站是啥意思2345浏览器下载
  • 怎么做二级网站域名怎么开网站平台挣钱
  • 网页设计与制作教程考试试卷seo包年优化平台
  • 做网站程序的步骤全国疫情高中低风险区一览表
  • 电商优惠券网站 建设线上营销推广
  • 左右布局的网站软文发稿
  • 手机网站自适应宽度哪些行业适合做网络推广
  • 网站登陆怎么做厦门网站制作
  • 域名网站搭建南宁百度推广代理公司
  • 电商小程序运营广州关于进一步优化疫情防控措施
  • 网站个人备案类型服装市场调研报告
  • 模板网站平台网店推广平台有哪些
  • 高雅大气的三字公司名称电子商务seo实训总结
  • 做网站网页文件百度搜索排行榜
  • 网站建设需要哪些素材semicircle
  • 互联网网站制作公司jsurl中文转码
  • 做携程网站的技术朔州seo
  • 官方网站建设专业公司网站建设报价明细表
  • 动态网站的五个组成部分学seo如何入门
  • 网站中文名国内搜索引擎
  • 外贸 模板网站 定制网站网站建设服务
  • wordpress做物流网站网络舆情
  • .net网站开发全过程商品推广
  • 浙江省住房城乡建设厅网站首页百度推广官网首页
  • 网站建设和推广网络推广方式方法
  • 网站建设服务商怎么收费seo网页优化培训
  • 两学一做山西答题网站广告联盟赚钱app
  • vs中做网站怎么设置图片标准天津seo培训机构
  • 济南街道办网站建设关联词有哪些 全部