spring基本概念
2017-08-21 09:21
204 查看
一、spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的框架
控制反转(IOC):创建被调用者的实例的工作不再有调用者完成,而是由IOC容器完成
依赖注入(DI):当某个角色(可能是Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,创建被调用者的实例的工作不再有调用者完成,而是由IOC容器完成,然后注入调用者。(例:类A的方法包含B的私有属性,则A要执行方法必须先给B 的私有属性赋值,使用依赖注入,不需要A来给B的私有属性赋值,由外部容器执行)
面向切面(AOP):将程序中的交叉业务逻辑(公用代码)提取出来,称为切面,将这些切面动态的织入到目标对象,生成一个新的代理对象的过程
AOP术语:
切面:业务交叉逻辑的统称,比如日志,事务,安全,缓存
通知:切面的具体实现;决定切面可以干什么,什么时候干
切点;指通知应用到哪些目标对象的哪些方法;决定通知在何处执行
引入(introduction):指动态的给一个对象增加方法,是一种特殊的通知
织入(weaving):将切面(通知)应用到目标对象生成代理的过程
实现AOP的四种方式:
经典的基于代理的AOP ;@AspectJ注解驱动的切面 ;纯POJO切面
;注入式AspectJ切面
二、轻量级/重量级:划分一个应用属于轻量级还是重量级,主要看它使用了多少服务,使用服务越多,容器要为java对象做的工作就越多,必然会影响到应用的发布时间或运行性能。Spring容器提供了很多服务,但这些服务默认是关闭的,当应用需要某种服务的时候,还需要指名将使用该服务,spring默认只使用了spring的核心服务,所以是轻量级的,如果应用使用了spring的大部分服务,则为重量级的
三、好处:降低耦合度,实现解耦(如何实现:IOC DI)
提供很多服务;
单例模式;
容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能;
容器提供众多辅助类;
Spring对主流应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等便于应用开发
四、模块:
五:Spring Core(核心容器):提供了依赖注入来实现容器对Bean的管理
应用上下文模块:使Spring成为一个框架
*EJB:EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行
*JNDI:Java命名和目录接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI
API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。目录服务是命名服务的一种自然扩展。两者之间的关键差别是目录服务中对象不但可以有名称还可以有属性(例如,用户有email地址),而命名服务中对象没有属性
六、注入方式:
1.set注入:在基本类型的调用里,实际是调用了setter对象来赋值,即使没有id属性,只要有serId()方法,也可以调用;
2.构造方法注入:property有顺序,按构造函数参数列表匹配;如果用索引可以不用管顺序
3.接口注入
七、getBean()默认单例
八、自动装配:autowire:byName,如果属性名和xml文件中的某个bean的id一样,就注入这个bean
autowire:byType,如果属性类型与xml文件中的某个bean的class一样,就注入,但只能有一个,多了就报错
autowire:constructor,构造方法的参数与xml文件bean的id相同,就注入
控制反转(IOC):创建被调用者的实例的工作不再有调用者完成,而是由IOC容器完成
依赖注入(DI):当某个角色(可能是Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,创建被调用者的实例的工作不再有调用者完成,而是由IOC容器完成,然后注入调用者。(例:类A的方法包含B的私有属性,则A要执行方法必须先给B 的私有属性赋值,使用依赖注入,不需要A来给B的私有属性赋值,由外部容器执行)
面向切面(AOP):将程序中的交叉业务逻辑(公用代码)提取出来,称为切面,将这些切面动态的织入到目标对象,生成一个新的代理对象的过程
AOP术语:
切面:业务交叉逻辑的统称,比如日志,事务,安全,缓存
通知:切面的具体实现;决定切面可以干什么,什么时候干
切点;指通知应用到哪些目标对象的哪些方法;决定通知在何处执行
引入(introduction):指动态的给一个对象增加方法,是一种特殊的通知
织入(weaving):将切面(通知)应用到目标对象生成代理的过程
实现AOP的四种方式:
经典的基于代理的AOP ;@AspectJ注解驱动的切面 ;纯POJO切面
;注入式AspectJ切面
二、轻量级/重量级:划分一个应用属于轻量级还是重量级,主要看它使用了多少服务,使用服务越多,容器要为java对象做的工作就越多,必然会影响到应用的发布时间或运行性能。Spring容器提供了很多服务,但这些服务默认是关闭的,当应用需要某种服务的时候,还需要指名将使用该服务,spring默认只使用了spring的核心服务,所以是轻量级的,如果应用使用了spring的大部分服务,则为重量级的
三、好处:降低耦合度,实现解耦(如何实现:IOC DI)
提供很多服务;
单例模式;
容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能;
容器提供众多辅助类;
Spring对主流应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等便于应用开发
四、模块:
五:Spring Core(核心容器):提供了依赖注入来实现容器对Bean的管理
应用上下文模块:使Spring成为一个框架
*EJB:EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行
*JNDI:Java命名和目录接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI
API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。目录服务是命名服务的一种自然扩展。两者之间的关键差别是目录服务中对象不但可以有名称还可以有属性(例如,用户有email地址),而命名服务中对象没有属性
六、注入方式:
1.set注入:在基本类型的调用里,实际是调用了setter对象来赋值,即使没有id属性,只要有serId()方法,也可以调用;
2.构造方法注入:property有顺序,按构造函数参数列表匹配;如果用索引可以不用管顺序
3.接口注入
七、getBean()默认单例
八、自动装配:autowire:byName,如果属性名和xml文件中的某个bean的id一样,就注入这个bean
autowire:byType,如果属性类型与xml文件中的某个bean的class一样,就注入,但只能有一个,多了就报错
autowire:constructor,构造方法的参数与xml文件bean的id相同,就注入
相关文章推荐
- Spring 基本概念和 IOC
- Spring boot分层和基本概念
- Spring AOP基本概念
- Spring基本概念
- Spring学习之Aop的基本概念
- Java程序员从笨鸟到菜鸟之(七十四)细谈Spring(六)spring之AOP基本概念和配置详解
- 自学心得1一Spring基本概念
- Spring AOP的基本概念
- Spring记录之Spring的基本概念
- Spring学习之基本概念
- 细谈Spring(六)spring之AOP基本概念和配置详解
- spring源码分析之spring-web remoting模块概况及基本概念
- Spring(一):Spring概念、基本例子入门
- Spring小白到菜鸟修炼之基本概念(1)
- Java程序员从笨鸟到菜鸟之(七十四)细谈Spring(六)spring之AOP基本概念和配置详解
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- SpringAOP基本概念及实现原理(三)
- Spring学习之Aop的基本概念
- Spring AOP 之一:基本概念与流程
- 8 -- 深入使用Spring -- 4...3 AOP的基本概念