当前位置 : 主页 > 编程语言 > c++ >

对Spring的一些理解

来源:互联网 收集:自由互联 发布时间:2021-07-03
gistfile1.txt Spring可以看作一个容器控制反转:原本由程序员在代码各处New的对象,统一放在容器中管理,一加载容器就创建对象,程序员只需要根据配置环境获取到环境对象context,然后
gistfile1.txt
Spring可以看作一个容器
控制反转:原本由程序员在代码各处New的对象,统一放在容器中管理,一加载容器就创建

对象,程序员只需要根据配置环境获取到环境对象context,然后从环境中取要用的对象就

可以了。
优点:对象进行了统一管理,加快了程序执行时的速度

代理设计模式:不再使用一个类的对象,反而使用这个类的代理类的对象,一些重复的东

西可以放在代理类中


AOP面向切面编程:把在类A的多个方法中的重复代码进行封装,把重复的代码切掉,放在

切面类中,通过配置,让类A的所有方法在执行之前或之后都执行切面类中的某段代码

-->1.AOP专业属于
		-->1.Joinpoint		连接点		目标类类中的方法
		-->2.Pointcut		切点		查找目标类方法条件
		-->3.Advice		增强		在调用目标类方法之前或者之后所需要额外功能(代码)
		-->4.Target		目标对象	目标类
		-->5.introduction	引介		强行让目标类实现接口
		-->6.Weaving		织入		给目标类添加功能时的时机1.编译期 2.类转载期 3.运行期(内存版,动态代理)
		-->7.Proxy		代理		代理类,完成切入后的目标类(增强版的代理类)
		-->8.Aspect		切面		最终增强的代理方法15:34 2016/7/28
	-->2.增强类型,org.aopalliance.aop.Advice
		-->前置增强:org.springframework.aop.BeforeAdvice,MethodBeforeAdvice
			-->1、编写一个切面类来实现该接口,重写里面的方法
			-->2、通过配置文件来实现
				切入点: 
				第一个*号表示任意返回类型
				第一个*后面代表包的路径
				第二个*代表包内的任意类
				第三个*代表保内的任意方法
				(..):代表方法中的任意参数
					
		-->后置增强:org.springframework.aop.AfterReturning
		-->环绕增强:org.aopalliance.intercept.MethodInterceptor
		-->异常增强:org.springframework.aop.ThrowsAdvice
			-->必须手动 afterThrowing([Method method,Object[] args,Object target],Throwable e)
		-->引介增强:org.springframework.aop.IntroductionInterceptor
			-->在目标类添加方法和属性
	-->3.0基于@AspectJ配置切面
		-->@Before		前增强
		-->@AfterReturning	后置增强
		-->@Around		环绕增强
		-->@AfterThrowing	异常增强
		-->@After		抛出异常和正常退出增强
		-->@DeclareParents	引介增强
		-->使用规则
			-->使用代码,创建AspectJProxyFactory,设置目标类和增强类
			-->启用注解功能
			-->配置目标类bean,配置增强类bean,配置org.springframework.aop.aspectj.annotation
网友评论