视频课程 https://ke.qq.com/course/27346
如何使用idea创建
http://blog.csdn.net/industriously/article/details/52851588?_t=t
IBM :https://www.ibm.com/developerworks/cn/java/wa-spring1/
极客学院:http://wiki.jikexueyuan.com/project/spring/annotation-based-configuration.html
一.Spring介绍
Spring是一个优秀的开源的框架,它是为了解决企业级开发的复杂度而诞生的,是一个容器。它是一种分层架构的程序,使用者可以根据需要使用它每一个部分的组件。同时又能集成其他优秀的开源框架。
1.在spring中把所有由spring管理的对象都叫bean
2.spring是非侵入型的不需要实现spring的接口和父类
3.通过配置文件提供依赖注入的功能,面向切面编程
4.spring是一个容器,管理容器中各个组件的生命周期
5.一站式的框架。在ioc和aop的情况下整合其他第三方的框架。
![Uploading Paste_Image_611356.png . . .]
二、IOC和DI
IOC:控制反转,容器自动向所管理的组件推送资源,组件只需要选择一个合适的资源接受
DI:依赖注入,组件以预定好的方式接收组件推送的资源,例如set方法。
三、配置Bean
1.首先创建IOC容器。通常有两种创建的方式
1.1ApplicationContext:开发者使用该方式,基本所有的开发都通过该类实现容器实例
1.2BeanFactroy:底层使用
ApplicationContext的实现方式
四、依赖注入
XML显示的配置:
1.属性注入
** 1.1 在xml中的bean标签下使用property标签。**
注意指定的类一定要提供set方法。property的那么属性一定对应set方法,除去"set"字段的名称。比如setName对应Name。
1.2 bean之间的互相引用,使用ref参数表示,注意ref的值只能是xml中已经声明的其他bean的id
1.3还可以使用内部bean,在property内部嵌套一个
1.4 null属性的专有标记
<null/>
1.5 级联属性的赋值
spring支持给bean内部的对象参数赋值,例如Person中有一个car属性。注意使用级连属性赋值前一定要保证对象被初始化。
2.构造方法注入
在xml中使用使用constructor-arg表示构造器,value表示构造器的参数,index表示构造器参数的顺序,type表示类型,如果string类型中含有特殊字符,可以使用下面的格式进行包裹。以便容器识别
<![CDATA[内容]]>
*2.1 使用P命名空间注入
引入p命名空间
xmlns:p="http://www.springframework.org/schema/p"
在bean的标签中使用,idea会自动识别出bean中的参数
3.配置集合属性
3.1给集合参数赋值,使用list+ref标签,注意ref引用的是在xml中配置过的bean。
3.2 Properties 属性赋值
3.4将部分属性抽离出来,共其他bean引用
3.4.1需要引入新的命名空间,其中utils的名字自定义
xmlns:utils="http://www.springframework.org/schema/util"
在schemaLocation中添加util的解析环境
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd"
3.4.2 创建一个可以供引用的对象