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

金融适合什么颜色做网站/手机自动排名次的软件

金融适合什么颜色做网站,手机自动排名次的软件,dw做的网站如何让文字换行,佛山seo一、背景 在Spring的官方文档里,其中《Spring AOP APIs》一章里讲述了使用Spring-AOP的API进行切面编程的方法。地址如下: https://docs.spring.io/spring/docs/5.2.6.RELEASE/spring-framework-reference/core.html#aop-api 于是简单写了个DEMO以加深…

一、背景

在Spring的官方文档里,其中《Spring AOP APIs》一章里讲述了使用Spring-AOP的API进行切面编程的方法。地址如下:

https://docs.spring.io/spring/docs/5.2.6.RELEASE/spring-framework-reference/core.html#aop-api

于是简单写了个DEMO以加深巩固;

二、说明

使用Spring-AOP的API进行切面编程与使用注解(@EnableAspectJAutoProxy+@Aspect+@Pointcut+@Around)的思路类似,大致步骤如下:

(1)定义Pointcut切入点;

(2)定义Advice通知

三、示例

Pointcut切入点的配置:接口EmailService的实现类中带有@MyAnn注解的方法;

Advice通知的配置:使用BeforeAdvice前置通知进行拦截处理;

import java.lang.reflect.Method;
import org.springframework.aop.BeforeAdvice;
import org.springframework.aop.MethodBeforeAdvice;
import org.springframework.aop.Pointcut;
import org.springframework.aop.PointcutAdvisor;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.aop.support.StaticMethodMatcherPointcut;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;@Documented
@Retention(RUNTIME)
@Target({ TYPE, FIELD, METHOD })
@interface MyAnn {
}interface EmailService {public String send(String s);@MyAnnpublic void test();
}class MyEmailServiceImpl implements EmailService {@Overridepublic String send(String s) {System.out.println("send message :" + s);return "ok";}@MyAnn@Overridepublic void test() {System.out.println("this test function()" );}
}public class Application {public static void main(String[] args) {// 构造切面的切入点PointcutPointcut myPointcut = new StaticMethodMatcherPointcut() {//切入点为:EmailService的实现类中,标记有@MyAnn注解的方法@Overridepublic boolean matches(Method method, Class<?> targetClass) {if (targetClass.isAssignableFrom(EmailService.class) || method.isAnnotationPresent(MyAnn.class)) {return true;}return false;}};// 设置前置通知方式处理BeforeAdvice myBeforeAdvice = new MethodBeforeAdvice() {@Overridepublic void before(Method method, Object[] args, Object target) throws Throwable {System.out.println("!!!!!!!!before advice :" + method.getName());}};PointcutAdvisor myAdvisor = new DefaultPointcutAdvisor(myPointcut, myBeforeAdvice);ProxyFactory factory = new ProxyFactory(new MyEmailServiceImpl());factory.addAdvisor(myAdvisor);EmailService service = (EmailService) factory.getProxy();service.send("xxxx");service.test();}}

运行结果:

send message :xxxx
!!!!!!!!before advice :test
this test function()

从结果中可以看出:

MyEmailServiceImpl的两个方法中,只有test()方法进行了前置处理,与预期一致。

http://www.lbrq.cn/news/1261459.html

相关文章:

  • 旅游模板网站建设/宁波抖音seo搜索优化软件
  • 工厂网站建设/学电脑在哪里报名
  • wordpress菜单导航插件/武汉久都seo
  • 网站建站素材/北京疫情又严重了
  • 溧阳做网站/公关公司经营范围
  • 水果网络营销策划书/windows优化
  • 成都小程序系统定制开发/当阳seo外包
  • 宜兴做网站多少钱/郑州搜狗关键词优化顾问
  • wordpress免ftp/seo怎么才能优化好
  • 惠州网站建设设计/外链代发
  • 郑州免费自助建站模板/广告位招商怎么找客户
  • 可信赖的南昌网站制作/seo排名计费系统
  • 北京网站建设推荐q479185700上快/好看的seo网站
  • 网站开发都有/电商seo优化是什么意思
  • 网站开发设计师培训/网站技术解决方案
  • wordpress变成小程序/深圳网站设计专业乐云seo
  • nginx环境下安装wordpress/合肥网站优化推广方案
  • 网站广告位投放/搜索引擎营销方法有哪些
  • 网站开发中数据库的设计原则/职业培训热门行业
  • 网站域名申请/考拉seo
  • 有哪些h5做的网站/站长工具在线平台
  • 交友系统网站建设/宁波网站建设与维护
  • 产品外观设计师/seo网站优化师
  • 网站建设论文linux/关键词优化需要从哪些方面开展?
  • 网站建设论文答辩自述/什么软件可以推广自己的产品
  • 网站主服务器所在地地址/微信管理软件哪个最好
  • ag bbin 网站开发/建站官网
  • 网站建设经验心得/百度指数网址
  • 网站备案要什么资料/专注于品牌营销服务
  • google 网站打不开/互动营销经典案例
  • 深度学习TR3周:Pytorch复现Transformer
  • Flask + HTML 项目开发思路
  • io_destroy系统调用及示例
  • kafka与其他消息队列(如 RabbitMQ, ActiveMQ)相比,有什么优缺点?
  • JavaScript:编程世界中的“语盲”现象
  • 老电脑PE下无法读取硬盘的原因