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学习(一)的更多相关文章

  1. spring 学习之 bean 的注入方式 property和constructor-arg的使用方式

    spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...

  2. Spring学习之AOP总结帖

    AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...

  3. Spring学习之第一个AOP程序

    IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...

  4. MyEclipse Spring 学习总结三 SpringMVC

    MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...

  5. Spring学习 Ioc篇(一 )

    一直以来忙于项目的开发,Spring虽然不用,一直想系统地学习一下,想看看它的源码,都没有时间,这段时间比较充裕,就索性先把Spring学习下,熟悉各个功能再去探究它内部的实现.就从Ioc篇开始学习. ...

  6. Spring学习(三)——Spring中的依赖注入的方式

    [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...

  7. Spring学习(二)——Spring中的AOP的初步理解[转]

      [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...

  8. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  9. Spring学习8-Spring事务管理

      http://blog.sina.com.cn/s/blog_7ffb8dd501014e0f.html   Spring学习8-Spring事务管理(注解式声明事务管理) 标签: spring注 ...

  10. Spring学习之Ioc控制反转(1)

    开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...

随机推荐

  1. 《黑客反汇编揭秘》(2e)推荐书单

    Must-Read Books and Other References Books on C/C++: The C Programming Language by Brian W. Kernigha ...

  2. ionic 图标以及启动页图片不能正确加载

    前段时间莫名其妙的发现发布的app不能正常的现实图标和启动页了,加载出来的图标以及图片显示的都是cordova的默认图片以及启动页图片 在网上找了很多教程各种查找都不能解决方法 表现原因为: 项目根目 ...

  3. python3--删除所有空目录,第一个有实际用处的程序

    #目标:删除所有空文件夹 #逐个判断某目录下所有项目 #若该项目是目录就进入该目录,完成上一步,不是下一个项目 #判断完所有后判断当前目录是否是空目录,是就删除 #需要管理员权限,否则很多目录无权限 ...

  4. Ubuntu总结常用命令记录

    功能: 如何看系统是多少位:命令行下uname -a 桌面下打开终端:Ctrl + Alt + T    Linux下查看: 白色:表示普通文件蓝色:表示目录绿色:表示可执行文件红色:表示压缩文件浅蓝 ...

  5. RabbitMQ学习系列(三): C# 如何使用 RabbitMQ

    上一篇已经讲了Rabbitmq如何在Windows平台安装,还不了解如何安装的朋友,请看我前面几篇文章:RabbitMQ学习系列一:windows下安装RabbitMQ服务 , 今天就来聊聊 C# 实 ...

  6. linux下的ssh工具之,本地上传到linux服务器and Linux服务器文件另存为本地。非sftp工具。

    首先,当你只有一个ssh工具可以连接linux,但你有想把文件在 linux 和windows(本地)直接的切换.其实可以的: 本文参考 1.将本地的文件,放到ssh远程的linux服务器上: 首先要 ...

  7. Nginx设置线程数为整机内核数的俩倍!

    Nginx设置线程数为整机内核数的俩倍!

  8. Java 中文乱码问题总结

    开发java应用出现乱码是很常见的,毕竟现在unicode的使用还不是很广泛,在使用gb2312(包含了gbk简体,big5繁体)的系统中要正确 实现中文的display和数据库的存储是最基本的要求. ...

  9. IE的F12开发人员工具不显示

    IE的F12开发人员工具不显示问题: 按下F12之后,开发人员工具在桌面上看不到,但是任务栏里有显示.将鼠标放在任务栏的开发人员工具上,出现一片透明的区域,选中之后却出不来.将鼠标移动到开发人员工具的 ...

  10. 项目vue2.0仿外卖APP(四)

    组件拆分 先把项目搭建时生成的代码给清了吧 现在static目录下引入reset.css 接着在index.html引入,并且设置<meta> 有时候呢,为了让代码符合我们平时的编码习惯, ...