Spring一些基本概念
				
				
						
								
								
								
						
				
		
		
				
						
								 
						
				
		
		
				
						轻量级
				
				
						
								  
						
				
				
						
						
				
		
		
				组件小,库小
		
		
				Spring 
				在某种意义上是
				EJB 
				的替代品,她是一种轻量级的容器。用过
				EJB 
				的人都知道
				EJB 
				很复杂,为了一个简单的功能你不得不编写多个
				Java
				文件和部署文件,他是一种重量级的容器。
				
						
						
				
		
		
				
						
								 
						
				
		
		
				
						非入侵式
				
				
						
								
								
						
				
		
		
				
						
								 
						
				
		
		
				重量级容器是一种入侵式的,也就是说你要用
				EJB 
				提供的功能就必须在你的代码中体现
				出来你使用的是
				EJB
				,比如继承一个接口,声明一个成员变量。这样就把你的代码绑定在
				EJB 
				技术上了
		
		
				
						 
				
		
		
				相对而言“轻量级”就是非入侵式的,用
				Spring 
				开发的系统中的类不需
		
		
				要依赖
				Spring 
				中的类,不需要容器支持(当然
				Spring 
				本身是一个容器),而且
		
		
				Spring 
				的大小和运行开支都很微量
				
						
						
				
		
		
				
						 
				
		
		
				
						
								 
						
				
		
		
				
						容器
				
				
						
								
								
						
				
		
		
				为容器提供一个运行环境,
		
		
				
						 
				
		
		
				
						IOC/DI 
				
		
		
				IoC 
				的全称是
				Inversion of Control
				,中文翻译反向控制或者逆向控制
				
						
						
				
		
		
				反转控制,另一个名字依赖注入,
		
		
				控制权的转移即是所谓的反转。
		
		
				
						 
				
		
		
				
						依赖注入
				
				
						
								
								
						
				
		
		
				为调用者对象设置被调用者对象
		
		
				接口注入
		
		
				构造注入
		
		
				设置注入
				(set/get)
		
		
				
						
								 
						
				
		
		
				
						AOP
				
				
						
								
								
						
				
		
		
				AOP 
				全称是
				Aspect-Oriented Programming
				,中文翻译是面向方面的编程或者面向切面的编程。
				你应该熟悉面向过程的编程,面向对象的编程,但是面向切面的编程你也许是第一次听说
				
						
						
				
		
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				
						POJO
				
		
		
				我所看到过的
				POJO 
				全称有两个,
				Plain Ordinary Java Object
				,
				Plain Old Java
		
		
				Object
				,两个差不多,意思都是普通的
				Java 
				类,所以也不用去管谁对谁错。
				POJO
		
		
				可以看做是简单的
				JavaBean
				(具有一系列
				Getter
				,
				Setter 
				方法的类)。严格区分
		
		
				这里面的概念没有太大意义,了解一下就行。
		
		
				
						
								 
						
				
		
		
				应用
				Spring 
				中的切面
		
		
				Spring 
				生来支持
				AOP
				,首先来看几个概念:
		
		
				
						 
				
		
		
				
						
								1、   
						
				
				
						切面(
				
				
						Aspect
				
				
						):
				
		
		
				切面是系统中抽象出来的的某一个功能模块,上文已经有过介绍,这里不再多说。
		
		
				
						2
				
				
						、 通知(
				
				
						Advice
				
				
						)
				
				:
		
		
				通知是切面的具体实现。也就是说你的切面要完成什么功能,具体怎么做就是在通知里面完成的。这个名称似乎有点让人费解,等后面看了
		
		
				代码就明白了。
		
		
				
						 
				
		
		
				
						3 
				
				
						切入点(
				
				
						Pointcut
				
				
						):
				
				
						
								
								
						
				
		
		
				切入点定义了通知应该应用到系统的哪些地方。
		
		
				Spring 
				只能控制到方法(有的
				AOP 
				框架可以控制到属性),也就是说你能在方法调用之前或者之后选择切入,执行额外的操作。
		
		
				
						 
				
		
		
				
						
								2、   
						
				
				
						目标对象(
				
				
						Target
				
				
						):
				
		
		
				目标对象是被通知的对象。它可以是任何类,包括你自己
		
		
				编写的或者第三方类。有了
				AOP 
				以后,目标对象就只需要关注自己的核心业务,其他的功能,比如日志,就由
				AOP 
				框架支持完成。
		
		
				
						 
				
		
		
				
						3、    
				
				
						代理(
				
				
						Proxy
				
				
						)
				
				:
		
		
				简单的讲,代理就是将通知    应用到目标对象后产生的对象。
		
		
				Spring
				在运行时会给每个目标对象生成一个代理对象,以后所有对目标对象的操作都
		
		
				会通过代理对象来完成。只有这样通知才可能切入目标对象。对系统的其他部
		
		
				分来说,这个过程是透明的,也就是看起来跟没用代理一样。
		
		
				
						 
				
		
		
				
						 
				
		
		
				
						“连接点(
				
				
						Jointpoint
				
				
						)??