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

免费建站建站果蔬网站规划建设方案

免费建站建站,果蔬网站规划建设方案,网页制作基础教程使用spry构件,广州安全教育平台登录账号登录目录 一、简介二、代码示例2.1 接口类2.2 接口实现类2.3 AOP切面类2.4 启动类#xff08;测试#xff09;2.5 执行结果 一、简介 背景#xff1a; 在之前 Spring 的 AOP 用法中#xff0c;只有代理的类才会被切入。例如#xff1a;我们在 Controller 层调用 Service 的方式… 目录 一、简介二、代码示例2.1 接口类2.2 接口实现类2.3 AOP切面类2.4 启动类测试2.5 执行结果 一、简介 背景 在之前 Spring 的 AOP 用法中只有代理的类才会被切入。例如我们在 Controller 层调用 Service 的方式时是可以被切入的。但是如果我们在 Service 层 A 方法中调用 B 方法切点切的是 B 方法那么这时候是不会被切入的。 解决方案如标题所示可以使用 AopContext.currentProxy() 来解决。在 A 方法中使用如下方式来调用 B 方法这样一来就能切入了 import org.springframework.aop.framework.AopContext;((Service) AopContext.currentProxy()).B();二、代码示例 2.1 接口类 首先定义一个接口其中前两个方法内部通过不同方式调用了第三个方法。 SomeInterface.java public interface SomeInterface {/** 调用方普通调用 */void someMethod();/** 调用方获取代理调用 */void someMethodWithProxy();/** 被调用方 */void anotherMethod(); }2.2 接口实现类 然后我们按照上面描述的关系来编写实现类。 MyBean.java import com.demo.module.test.SomeInterface; import org.springframework.aop.framework.AopContext; import org.springframework.stereotype.Component;Component public class MyBean implements SomeInterface {Overridepublic void someMethod() {System.out.println(someMethod...);this.anotherMethod();}Overridepublic void someMethodWithProxy() {System.out.println(someMethodWithProxy...);MyBean myBean (MyBean) AopContext.currentProxy();myBean.anotherMethod();}Overridepublic void anotherMethod() {System.out.println(anotherMethod...);} }2.3 AOP切面类 这里实现了一个切面来增强被调用的方法 anotherMethod()。 SomeAspect.java import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component;Aspect Component public class SomeAspect {After(execution(* com.demo.impl.MyBean.anotherMethod(..)))public void afterAnotherMethod() {System.out.println(after anotherMethod);} }2.4 启动类测试 注意这里需要在启动类或者配置类中添加如下注解不然无法使用 AopContext.currentProxy() 方法来获取代理类。 EnableAspectJAutoProxy(exposeProxy true) // 开启 Spring 注解 AOP 配置的支持不添加会出现如下报错java.lang.IllegalStateException: Cannot find current proxy: Set ‘exposeProxy’ property on Advised to ‘true’ to make it available… Caused by: java.lang.IllegalStateException: Cannot find current proxy: Set exposeProxy property on Advised to true to make it available, and ensure that AopContext.currentProxy() is invoked in the same thread as the AOP invocation context.at org.springframework.aop.framework.AopContext.currentProxy(AopContext.java:69) ~[spring-aop-5.2.6.RELEASE.jar:5.2.6.RELEASE]at com.demo.module.test.impl.MyBean.someMethodWithProxy(MyBean.java:26) ~[classes/:na]此外我们在启动类中注入了一个 CommandLineRunner 类用于启动后立马执行测试代码。 DemoApplication.java import com.demo.module.test.SomeInterface; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.EnableAspectJAutoProxy;import javax.annotation.Resource;EnableAspectJAutoProxy(exposeProxy true) // 开启 Spring 注解 AOP 配置的支持 SpringBootApplication public class DemoApplication {Resourceprivate SomeInterface someInterface;public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}Beanpublic CommandLineRunner commandLineRunner() {return args - {System.out.println( someMethod );someInterface.someMethod();System.out.println( someMethodWithProxy );someInterface.someMethodWithProxy();System.out.println( end );};} }2.5 执行结果 执行结果如下可以看到通过 AopContext.currentProxy() 获取当前类的代理后再调用可以正常进行 AOP 增强。 整理完毕完结撒花~ 参考地址 1.AopContext.currentProxy()https://blog.csdn.net/qq_29860591/article/details/108728150
http://www.huolong8.cn/news/417605/

相关文章:

  • 山西孝义网站开发亚运会110周年庆典在杭州举行
  • 东莞有哪家比较好的网站建设公司wordpress加html
  • 营销型企业网站的建设方案网站建设的实训报告的实训感受
  • 嘉定网站建设哪家便宜在免费空间上传网站为什么访问不了
  • 中国建设通官方网站搜索引擎名词解释
  • 网站 如何做 同时在线成都公布最新轨迹
  • 佛山网站设计多少钱媒体公司网站模板
  • 做简图的网站电商网站建设模型图
  • 建设网站需要哪些素材购买网络商城系统
  • 网站建设的费是多少制作网页版权怎么修改
  • 网站开发的策划方案南阳谁会做网站
  • 企业网站推广属于付费域名注册管理中心网站
  • 怎样做省钱购物网站wordpress 模板之家
  • 千素网站建设百度seo课程
  • 网站策划内容怎么做淘宝网站教程
  • 网站建设项目经理引流推广话术文案
  • 哪里做网站做的好电商网站建设教案
  • 网站服务器可以自己做吗大连外经贸网站
  • 来个网站吧好人一生平安2022百度快速收录网站
  • 常州微信网站制作wordpress动漫视频网站
  • 宁波做网站建设推广seo优秀网站分析
  • 追天网站建设 优帮云广州企业建站模板
  • 网站建设资金请示注册公司名字有没有重复在哪可以查
  • 厦门自助建站怎么压缩网站
  • 房产网站推广wap建站程序源码
  • 企业网站开发公司有哪些微信文章采集 wordpress
  • 没有建设的网站不能申请微信支付吗东莞微网站制作公司
  • 网站制作.wordpress 没有模板选项
  • 哈尔滨阿城网站建设wordpress建站全过程
  • 小程序建站平台深圳专业网站设计哪家好