【第1617天】Web开发框架第一讲《spring框架》.pptVIP

【第1617天】Web开发框架第一讲《spring框架》.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 2,依赖 depends-on属性可以用于当前bean初始化之前显式的强制一个或多个bean被初始化。 bean id=beanOne class=ExampleBean depends-on=manager ?property name=manager ref=manager / /bean bean id=manager class=ManagerBean / 若需要表达对多个bean的依赖,可以在depends-on /中将指定的多个bean名字用分隔符进行分隔,分隔符可以是逗号、空格及分号等。 bean id=beanOne class=ExampleBean depends-on=manager,accountDao ?property name=manager ref=manager / /bean bean id=manager class=ManagerBean / bean id=accountDao class=x.y.jdbc.JdbcAccountDao / 3,引用 即前面讲的idref 控制反转-装配bean * 循环依赖问题 Spring容器能够顺利实例化以构造函数注入进行装配的bean有一个前提:Bean构造函数入参引用的对象必须已经准备就绪。由于这个机制的限制,如果两个bean都采用构造函数注入,而且都通过构造函数入参引用对方,就会发生类似于线程死锁的循环依赖问题。如下: Public class car{ … Public car(Boss boss){ this.boss=boss; } } Public class boss{ … Public boss(Car car){ this.car=carl; } } 当启动Ioc容器时,由于存在循环依赖问题,Spring容器将无法成功启动,这时我们可以混合使用函数注入和属性输入来解决该问题。即,把上面的一个函数注入改为属性注入方式。 控制反转-装配bean * 第三章 面向切面编程(AOP)基础 * 面向切面编程(AOP) AOP相关概念 连接点(Joinpoint): 程序执行的某个特定位置:比如类开始初始化前、类初始化后、某个方法调用前、调用后等。一个类或一段程序代码拥有的一些具有边界性质的特定点,这些代码中的特定点就称为“连接点”,Spring仅支持方法的连接点。 切点(Pointcut): 匹配连接点(Joinpoint)的断言。连接点相当于数据记录,切点相当于查询条件,一个切点可以匹配多个连接点。 增强(Advice): 织入到目标类连接点上的一段程序代码。 目标对象(Target): 增强逻辑的织入目标类 引介(Introduction) 引介是一种特殊的增强,为类添加一些属性和方法。通过它可以动态的为业务类增加接口的实现逻辑,让业务类成为这个接口的实现类。 * 织入(Weaving): 将增强添加到对目标类具体连接点上的过程。 代理(Proxy) 一个类被AOP织入增强后,就产生了一个结果类,它是融合了原类和增强逻辑的代理类。根据不同的代理方式,代理类既可能是和原类具有相同接口的类,也可能是原类的子类,所以我们可以采用调用原类相同的方式调用代理类 切面(Aspect) 切面由切点和增强(引介)组成,它既包括了横切逻辑的定义,也包括了连接点的定义,spring AOP就是负责实施 切面的框架,它将切面定义的横切逻辑织入到切面所指定的连接点中。 AOP的工作重点在于如何将增强应用于目标对象的连接点上,这包括两个工作: 1,如何通过切点和增强定位到连接点上; 2,如何在增强中编写切面的代码; 面向切面编程(AOP) * 代理机制: AOP通过动态代理技术在运行期织入增强代码,首先了解下AOP使用的两种代理机制: 1,基于JDK的动态代理 JDK1.3以后,java提供了动态代理技术,允许开发者在运行期创建接口的代理实例。 JDK动态代理主要涉及两个类, Java.lang.reflect.Proxy Java.lang.reflect. InvocationHandler InvocationHandler是一个接口,可以通过实现该接口定义的横切逻辑,并通过反射机制调用目标类的代码,动态的将横切逻辑和业务逻辑编织在一起。 Proxy利用InvocationHandler动态创建一个符合某一接口的实例,生成目标类的代理对象。 例子如下: 面向切面编程(AOP) * 2,基于CGlib的动态代理 JDK只能为接口创建代理实例,对于那些没有通过借口定义业务方法的类,可以通过CGLib创建代理实例。 CGLib采用底层字节码技术,可以为一个类创建子类,并在子类中采用方法拦截技术拦截所有父类方法的调用,这时可以顺势织入横切逻辑

文档评论(0)

xiaohuer + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档