Spring框架的整理
2017-09-09 18:03
316 查看
一:核心
(1):IOC 控制反转
(2):AOP 面向切面
二:优点
(1):方便解耦,简化开发(把对象的创建和依赖关系的维护交给Spring)
(2):对AOP的支持,实现拦截,监控,事务管理等功能
(3):Junit4的支持(测试类 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml"))
(4):支持各种框架的整合
(5):对部分难用的API做了封装,如JDBC,JavaMail,远程调用等
三:关于applicationContext
(1):ClassPathXmlApplicationContext 加载类路径下的Spring的配置文件
(2):FileSystemXMLApplicationContext 加载本地磁盘下的Spring的配置文件
四:Beanfactory和ApplicationContext的区别
Beanfactory在getBean的时候才会生成类的实例
ApplicationContext在加载ApplicationContext.xml时就创建
五:Bean 的属性
id(唯一 ,不能有特殊符号)
name(可以有特殊符号,整合Struts框架的时候会用到)
class
scope(默认情况下是单例模式singleton prototype是多利)
生命周期的方法init和dsetory
六:DI注入
(1):构造方法注入:constructor-arg name value 当为对象用ref
(2):set方法注入:property name value 当为对象用ref
(3):名称空间P的属性注入方式
(一):引入P名称空间(schema约束)
(二):使用p名称空间 格式:普通属性 p:属性名=" " 对象类型属性 p:属性-ref=" "
(4):SPEL方式的属性注入
语法 #{SPEL }
(5):复杂类型注入
例如:数组;List集合;map集合;properties的注入等
<property name="strings">
<array>
<value>aa</value>
<value>bb</value>
</array>
</property>
<property name="list">
<list>
<value>中国</value>
<value>大地</value>
</list>
</property>
<property name="set">
<set>
<value>东邪</value>
<value>西毒</value>
<value>南帝</value>
<value>北丐</value>
</set>
</property>
<property name="map">
<map >
<entry key="张翠山" value="1"></entry>
<entry key="张无忌" value="2"></entry>
</map>
</property>
<!-- 给属性集合文件赋值 -->
<property name="properties">
<props >
<prop key="杨过">郭襄</prop>
<prop key="小龙女">绿鄂</prop>
</props>
</property>
七:关于多个Spring配置文件的解决方案
(1): ClassPathXmlApplicationContext(“applicationContext1.xml ”,“ applicationContext2.xml ”)
(2):或者采用包含的方式<import resource="配文件"></import>
八:Spring在各个层的注解
在类上的注解:@component(value=" ") 是在xml中注册对象时所对应的id
web层:@controller
service层:@service
持久层:@Repository
属性注入的注解(可以不用提供set方法)
@Autowired
@Qualifer(“属性名”)
关于生命周期配置的注解
@postConstruct 相当于init-method
@preDestory 相当于destory-method
九:AOP面向切面的编程(通过预编译方式和运行期动态代理实现程序功能的统一维护)
在不修改源码的情况下,对程序进行增强
AOP进行权限校验,日志,记录,性能等的监控,事务的控制
底层采用代理机制
(一):JDK动态代理,针对实现了接口的类进行代理
(二):Cglib的动态代理,针对没有实现接口的类产生代理,应用的是底层的字节码增强的技术,生成当前类的子类对象
十:AOP的相关术语
连接点:目标类中的所有方法(Spring只支持方法类型的连接点)
切入点:需要被增强的方法
通知类:公共模块的能力
目标类:服务层的类
织入:通知应用到目标创建代理类的过程,是一个虚拟的过程
代理类:整合目标类和通知类
切面:通知和切入点关联就叫切面
备注:通知的类型(前置,后置和环绕)和切入点的表达式 execution()
十一:AspectJ的AOP注解
@After @AfterReturning @Around
关于它的xml配置为
<!-- AOP编程: aspectj的方式-->
<aop:config>
<!-- aspectj的单独节点 :关联到aspectj的通知-->
<aop:aspect ref="myAspect">
<!-- 定义切入点 -->
<aop:pointcut expression="execution(* com.qf.service.*.*(..))" id="mpPoint"/>
<!-- aspectj的通知
method=""写的是自定义的方法名称
-->
<!-- <aop:before method="befor" pointcut-ref="mpPoint"/> -->
<aop:after-returning method="after" returning="res" pointcut-ref="mpPoint"/>
<!-- <aop:around method="round" pointcut-ref="mpPoint"/> -->
</aop:aspect>
</aop:config>
若有错误的地方或不足的地方,请多多指教,谢谢!!!
(1):IOC 控制反转
(2):AOP 面向切面
二:优点
(1):方便解耦,简化开发(把对象的创建和依赖关系的维护交给Spring)
(2):对AOP的支持,实现拦截,监控,事务管理等功能
(3):Junit4的支持(测试类 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml"))
(4):支持各种框架的整合
(5):对部分难用的API做了封装,如JDBC,JavaMail,远程调用等
三:关于applicationContext
(1):ClassPathXmlApplicationContext 加载类路径下的Spring的配置文件
(2):FileSystemXMLApplicationContext 加载本地磁盘下的Spring的配置文件
四:Beanfactory和ApplicationContext的区别
Beanfactory在getBean的时候才会生成类的实例
ApplicationContext在加载ApplicationContext.xml时就创建
五:Bean 的属性
id(唯一 ,不能有特殊符号)
name(可以有特殊符号,整合Struts框架的时候会用到)
class
scope(默认情况下是单例模式singleton prototype是多利)
生命周期的方法init和dsetory
六:DI注入
(1):构造方法注入:constructor-arg name value 当为对象用ref
(2):set方法注入:property name value 当为对象用ref
(3):名称空间P的属性注入方式
(一):引入P名称空间(schema约束)
(二):使用p名称空间 格式:普通属性 p:属性名=" " 对象类型属性 p:属性-ref=" "
(4):SPEL方式的属性注入
语法 #{SPEL }
(5):复杂类型注入
例如:数组;List集合;map集合;properties的注入等
<property name="strings">
<array>
<value>aa</value>
<value>bb</value>
</array>
</property>
<property name="list">
<list>
<value>中国</value>
<value>大地</value>
</list>
</property>
<property name="set">
<set>
<value>东邪</value>
<value>西毒</value>
<value>南帝</value>
<value>北丐</value>
</set>
</property>
<property name="map">
<map >
<entry key="张翠山" value="1"></entry>
<entry key="张无忌" value="2"></entry>
</map>
</property>
<!-- 给属性集合文件赋值 -->
<property name="properties">
<props >
<prop key="杨过">郭襄</prop>
<prop key="小龙女">绿鄂</prop>
</props>
</property>
七:关于多个Spring配置文件的解决方案
(1): ClassPathXmlApplicationContext(“applicationContext1.xml ”,“ applicationContext2.xml ”)
(2):或者采用包含的方式<import resource="配文件"></import>
八:Spring在各个层的注解
在类上的注解:@component(value=" ") 是在xml中注册对象时所对应的id
web层:@controller
service层:@service
持久层:@Repository
属性注入的注解(可以不用提供set方法)
@Autowired
@Qualifer(“属性名”)
关于生命周期配置的注解
@postConstruct 相当于init-method
@preDestory 相当于destory-method
九:AOP面向切面的编程(通过预编译方式和运行期动态代理实现程序功能的统一维护)
在不修改源码的情况下,对程序进行增强
AOP进行权限校验,日志,记录,性能等的监控,事务的控制
底层采用代理机制
(一):JDK动态代理,针对实现了接口的类进行代理
(二):Cglib的动态代理,针对没有实现接口的类产生代理,应用的是底层的字节码增强的技术,生成当前类的子类对象
十:AOP的相关术语
连接点:目标类中的所有方法(Spring只支持方法类型的连接点)
切入点:需要被增强的方法
通知类:公共模块的能力
目标类:服务层的类
织入:通知应用到目标创建代理类的过程,是一个虚拟的过程
代理类:整合目标类和通知类
切面:通知和切入点关联就叫切面
备注:通知的类型(前置,后置和环绕)和切入点的表达式 execution()
十一:AspectJ的AOP注解
@After @AfterReturning @Around
关于它的xml配置为
<!-- AOP编程: aspectj的方式-->
<aop:config>
<!-- aspectj的单独节点 :关联到aspectj的通知-->
<aop:aspect ref="myAspect">
<!-- 定义切入点 -->
<aop:pointcut expression="execution(* com.qf.service.*.*(..))" id="mpPoint"/>
<!-- aspectj的通知
method=""写的是自定义的方法名称
-->
<!-- <aop:before method="befor" pointcut-ref="mpPoint"/> -->
<aop:after-returning method="after" returning="res" pointcut-ref="mpPoint"/>
<!-- <aop:around method="round" pointcut-ref="mpPoint"/> -->
</aop:aspect>
</aop:config>
若有错误的地方或不足的地方,请多多指教,谢谢!!!
相关文章推荐
- Spring框架内容整理(四):Spring事务处理
- Spring框架内容整理(三):AOP
- Preview of Spring-framework :Spring框架的预习和自我整理
- Spring框架内容整理(二):DI
- Spring框架内容整理(一):IOC
- Spring框架内容整理(一):IOC
- Spring框架内容整理(二):DI
- Spring框架内容整理(三):AOP
- Spring框架报错整理
- Spring框架内容整理(四):Spring事务处理
- Android 内存溢出解决方案(OOM) 整理总结
- 智普教育 整理各类IT编程视频教程下载地址(免费分享)
- iOS学习笔记总结整理
- cocos2d-x cpp 3.*相较于2.*的区别(整理)
- underscore之function_动力节点Java学院整理
- vue使用中一些坑整理(componet等)
- Linux+Django+MySQL:安装与配置,基本命令整理
- nodeJS读写文件中文乱码问题整理及计算机文件编码方式科普
- 整理VC的使用技巧(1)
- 菜鸟学习C++练笔之整理搜狗2008版语料库--获取分类语料库