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

网站推广朋友圈文案网站定制

网站推广朋友圈文案,网站定制,b2b电子商务网站调研报告国家开放大学,佛山建设企业网站第二章 SpringFramework 五、Spring AOP 面向切面编程 6. Spring AOP 基于 XML 方式实现(了解) 6.1 准备工作 加入依赖和基于注解的 AOP 时一样。准备代码把测试基于注解功能时的 Java 类复制到新 module 中,去除所有注解。 6.2 配置 Sp…

第二章 SpringFramework

五、Spring AOP 面向切面编程

6. Spring AOP 基于 XML 方式实现(了解)

6.1 准备工作

  • 加入依赖
  • 和基于注解的 AOP 时一样。
  • 准备代码
  • 把测试基于注解功能时的 Java 类复制到新 module 中,去除所有注解。

6.2 配置 Spring 配置文件

<!-- 配置目标类的bean -->
<bean id="calculatorPure" class="com.alex.aop.imp.CalculatorPureImpl"/><!-- 配置切面类的bean -->
<bean id="logAspect" class="com.alex.aop.aspect.LogAspect"/><!-- 配置AOP -->
<aop:config><!-- 配置切入点表达式 --><aop:pointcut id="logPointCut" expression="execution(* *..*.*(..))"/><!-- aop:aspect标签:配置切面 --><!-- ref属性:关联切面类的bean --><aop:aspect ref="logAspect"><!-- aop:before标签:配置前置通知 --><!-- method属性:指定前置通知的方法名 --><!-- pointcut-ref属性:引用切入点表达式 --><aop:before method="printLogBeforeCore" pointcut-ref="logPointCut"/><!-- aop:after-returning标签:配置返回通知 --><!-- returning属性:指定通知方法中用来接收目标方法返回值的参数名 --><aop:after-returningmethod="printLogAfterCoreSuccess"pointcut-ref="logPointCut"returning="targetMethodReturnValue"/><!-- aop:after-throwing标签:配置异常通知 --><!-- throwing属性:指定通知方法中用来接收目标方法抛出异常的异常对象的参数名 --><aop:after-throwingmethod="printLogAfterCoreException"pointcut-ref="logPointCut"throwing="targetMethodException"/><!-- aop:after标签:配置后置通知 --><aop:after method="printLogCoreFinallyEnd" pointcut-ref="logPointCut"/><!-- aop:around标签:配置环绕通知 --><!--<aop:around method="……" pointcut-ref="logPointCut"/>--></aop:aspect></aop:config>

6.3 测试

@SpringJUnitConfig(locations = "classpath:spring-aop.xml")
public class AopTest {@Autowiredprivate Calculator calculator;@Testpublic void testCalculator(){System.out.println(calculator);calculator.add(1,1);}
}

7. Spring AOP 对获取 Bean 的影响理解

7.1 根据类型装配 bean

7.1.1 情景一
  • bean 对应的类没有实现任何接口

  • 根据 bean 本身的类型获取 bean

    • 测试:IOC 容器中同类型的 bean 只有一个

      正常获取到 IOC 容器中的那个 bean 对象

    • 测试:IOC 容器中同类型的 bean 有多个

      会抛出 NoUniqueBeanDefinitionException 异常,表示 IOC 容器中这个类型的 bean 有多个

7.2 情景二
  • bean 对应的类实现了接口,这个接口也只有这一个实现类
    • 测试:根据接口类型获取 bean
    • 测试:根据类获取 bean
    • 结论:上面两种情况其实都能够正常获取到 bean,而且是同一个对象
7.3 情景三
  • 声明一个接口

  • 接口有多个实现类

  • 接口所有实现类都放入 IOC 容器

    • 测试:根据接口类型获取 bean

      会抛出 NoUniqueBeanDefinitionException 异常,表示 IOC 容器中这个类型的 bean 有多个

    • 测试:根据类获取 bean

      正常

7.4 情景四
  • 声明一个接口

  • 接口有一个实现类

  • 创建一个切面类,对上面接口的实现类应用通知

    • 测试:根据接口类型获取 bean

      正常

    • 测试:根据类获取 bean

      无法获取

  • 原因分析:

    • 应用了切面后,真正放在 IOC 容器中的是代理类的对象
    • 目标类并没有被放到 IOC 容器中,所以根据目标类的类型从 IOC 容器中是找不到的

在这里插入图片描述

7.5 情景五
  • 声明一个类
  • 创建一个切面类,对上面的类应用通知
    • 测试:根据类获取 bean,能获取到

在这里插入图片描述

  • debug 查看实际类型:

在这里插入图片描述

7.2 使用总结

  • 对实现了接口的类应用切面
    在这里插入图片描述
  • 对没实现接口的类应用切面 new
    在这里插入图片描述
  • 如果使用 AOP 技术,目标类有接口,必须使用接口类型接收 IoC 容器中代理组件!
http://www.ds6.com.cn/news/119497.html

相关文章:

  • 网站没有备案怎么申请广告百度网页制作
  • wordpress 仿主题下载seo公司官网
  • 漳州微网站建设哪家好网店营销策划方案ppt
  • 网站开发路径seo是干什么的
  • odoo做网站网站seo优化是什么意思
  • 疯狂试爱高清在线观看seo官网
  • 网站建设平台赚钱一键清理加速
  • 网站建设上传宝贝xamp推广网站制作
  • 微信网站 手机网站百度网盘下载电脑版官方下载
  • seo发布专员招聘seo在哪可以学
  • 做淘宝客网站流量选择关键词优化排名软件
  • 无锡定制网站建设百度指数支持数据下载吗
  • 校园淘宝店网站开发百度指数趋势
  • 网页入口网站推广百度提问在线回答问题
  • 温州做网站公司有哪些如何网络营销
  • 连云港网站定制开发推广费用一般多少
  • 完善网站建设重庆公司seo
  • 为什么网站开发需要写php网络推广服务外包公司
  • 大庆市住房与城乡建设局网站站长工具seo综合查询
  • 英语网站建设广告传媒公司主要做什么
  • 网络做网站如何盈利游戏推广是干什么的
  • 做网站需要备注号码百度关键词搜索热度查询
  • 导航网站 wordpress代运营哪家公司最靠谱
  • python做网站稳定吗免费的网站
  • 企业做网站需要多少钱免费观看行情软件网站下载
  • 郓城那家网站做的好云南疫情最新消息
  • 自己如何高效有力的维护一个网站网络优化是做什么的
  • 成都网站海口网站建设公司在百度怎么推广
  • 大型网站如何做别名淘宝seo什么意思
  • 做导航网站有发展吗免费推广的平台