Spring学习(一)
1、既然是学习Spring,我们首先要搞清楚Spring是什么?
Spring是分层的、JavaSE/EE一站式的、轻量级的开源框架。
2、Spring的核心
百度百科:Spring是基于IOC和AOP的一套编程框架
框架特征:
轻量级(大小、开销、非侵入(Spring应用中对象不依赖与Spring特定类))
控制反转:一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
面向切面:基于动态代理的功能增强方式,允许通过分离应用的业务逻辑与系统级服务(事务管理)进行内聚性开发。应用对象只实现他们应该做的:完成业务逻辑,而不负责其他的系统级关注点。
容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器。
框架:Spring可以将简单的组件配置、组合成为复杂的应用。
3、Spring的优点
spring的出现,解决了javaee的很多实际问题。
a,方便解耦,简化开发
b,AOP编程的支持
c,声明式事务的支持
d,方便程序的测试
e,方便集成各种优秀框架
f,降低JavaeeAPI的使用难度
4、 IoC和DI概念区分
DI和IOC说的都是同一件事情,都是将控制权交给第三方(spring )管理,只是站在不同的角度而已。
5、 XML配置
5.1实例化Bean方式(4—前三种都好好练习)
第一种:无参构造器
第二种:静态工厂方法
第三种:实力工厂方法
第四种:FactoryBean方式
5.2FactoryBean 使用(重点) 区分BeanFactory和FactoryBean
BeanFactory:是一个工厂,用来管理和获取很多bean对象
Factorybean:是一个Bean生成工具,是用来获取一种类型的Bean,它是构造bean实例的一种方式
5.3作用域 singleton和prototype
singleton:在SpringIOC容器中仅仅存在一个Bean一个实例,Bean以单例形式存在
prototype :每次从容器中调用Bean时,都会返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean()
5.4初始化和销毁
了解 BeanPostProcessor 后处理Bean
5.5属性依赖注入的三种方式
什么是Bean属性的注入?就是对一个对象的属性赋值
依赖注入(2种):构造器注入 <constructor-arg> 、 属性setter注入 <property> 、接口注入
了解 p名称空间 spEL 表达式 (一种表达式语言)
了解 集合类型注入
6、 注解配置
Bean扫描注册 (配置属性)
属性依赖注入(4种—至少要记住一种@autowaired)
初始化、销毁
作用域(@scope) :指定Bean的作用域(默认是单例)
混合配置
7、 web集成,配置Spring监听器 (ContextLoaderListener)—classpath:的使用,webappp…util.get(context)
【思考、阅读】直接new ClassPathXmlApplicationContext()有什么缺点?
缺点:在创建Spring容器同时,需要对容器中对象初始化。而每次初始化容器的时候,都创建了新的容器对象,消耗了资源,降低了性能。
解决思路:保证容器对象只有一个。
解决方案:将Spring容器绑定到Web Servlet容器上,让Web容器来管理Spring容器的创建和销毁。
分析:ServletContext在Web服务运行过程中是唯一的, 其初始化的时候,会自动执行ServletContextListener 监听器 (用来监听上下文的创建和销毁),具体步骤为:
编写一个ServletContextListener监听器,在监听ServletContext到创建的时候,创建Spring容器,并将其放到ServletContext的属性中保存(setAttribute(Spring容器名字,Spring容器对象) )。
我们无需手动创建该监听器,因为Spring提供了一个叫ContextLoaderListener的监听器,它位于spring-web-3.2.0.RELEASE.jar中。
8、 测试集成 (@runwith @ContextConfiguration(核心配置))---熟悉
Spring学习(一)的更多相关文章
- spring 学习之 bean 的注入方式 property和constructor-arg的使用方式
spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...
- Spring学习之AOP总结帖
AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...
- Spring学习之第一个AOP程序
IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...
- MyEclipse Spring 学习总结三 SpringMVC
MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...
- Spring学习 Ioc篇(一 )
一直以来忙于项目的开发,Spring虽然不用,一直想系统地学习一下,想看看它的源码,都没有时间,这段时间比较充裕,就索性先把Spring学习下,熟悉各个功能再去探究它内部的实现.就从Ioc篇开始学习. ...
- Spring学习(三)——Spring中的依赖注入的方式
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...
- Spring学习(二)——Spring中的AOP的初步理解[转]
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- Spring学习8-Spring事务管理
http://blog.sina.com.cn/s/blog_7ffb8dd501014e0f.html Spring学习8-Spring事务管理(注解式声明事务管理) 标签: spring注 ...
- Spring学习之Ioc控制反转(1)
开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...
随机推荐
- 利用django创建一个投票网站(四)
创建你的第一个 Django 项目, 第四部分 这一篇从第三部分(zh)结尾的地方继续讲起.我们将继续编写投票应用,专注于简单的表单处理并且精简我们的代码. 编写一个简单的表单 让我们更新一下在上一个 ...
- C内嵌汇编-格式
C内嵌汇编-格式: __asm__(汇编语句部分:输出部分:输入部分破坏描述部分);C内嵌汇编以关键字"__asm__"或"asm"开始, 下辖四个部分, 各部 ...
- unity游戏开发新手-----2017年展望
0.希望三月份中旬之前找一份游戏开发的工作,必须转正; 1.希望存款3-4万; 2.今年年底结婚; 3.锻炼身体,体重保持在115斤左右,有胸肌和腹肌;(结婚之前实现) 4.技术方面: 熟练掌握C#语 ...
- Java使用Fork/Join框架来并行执行任务
现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机.多核处理器已被广泛应用.在未来,处理器的核心数将会发展的越来越多. 虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这 ...
- checkbox的全选与反选
最近在做一个项目,其中一个功能就是多选框的全选与反选.感觉很简单的小功能,一下子想不起来怎么实现了,很是耽误时间.我在想,我有必要整理下自己的一些小demo了,也方便以后再使用的时候能快速的完成功能. ...
- 使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样
使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样openid生成是根据应用的appid和QQ号的一些信息加密生成,对于一个appid和QQ号来说,openid是唯一的 ...
- 更换域名后的数据库sql的执行命令
原来域名为trz.lqzcw.com 更改成 www.trzbearing.com UPDATE wp_options SET option_value = replace(option_value, ...
- ASP.MVC 基于AuthorizeAttribute权限设计案例
ASP.MVC上实现权限控制的方法很多,比如使用AuthorizeAttribute这个特性 1.创建自定义特性用于权限验证 public class AuthorizeDiy : Authorize ...
- 一个php 字符串判断问题
先看代码 你觉得下面的代码会输出什么结果: <?php $a = "10"; $b = "1e1"; if($a == $b ) { echo " ...
- leetcode--Different Ways to Add Parentheses
题目链接:https://leetcode.com/submissions/detail/86532557/ 算法类型:分治法 题目分析:计算表达式的所有结果可能性 代码实现: class Solut ...