Spring day 01
Spring 入门以及IOC容器
Spring开发步骤:
1.添加相关开发jar 包 (通常包含核心包和一些日志包,按需要加)
2.配置ApplicationContext.xml配置文件(即主要是配置bean)
3.获得bean对象
ApplicaitonContext接口:该接口里面的方法要好好研究
applicationContext.xml配置相关说明:
1.bean的默认作用域即singleton
2.bean默认是立即加载的,可以配置lazy延迟加载(bean或全上下文都可 以配置)
3.每个bean都有一个id 和 class(完整类路径) 配置
4.原生数据类型(value)引用数据类型(ref)
当我们看到完整的类路径的时候就要想到反射机制,没有反射机制就没有这些框架了。
如何减少Spring的配置文件:
*通过bean标签将公共的配置提取出来,然后指定bean标签中的abstract属性为true
*在其它bean标签中指定其parent 即可
其实挺类似java的继承
如何理清Spring的配置文件:
*即采用团队合作开发模式,将每个模块单独配置xml文件,然后使用导入到主配置
bean 的作用域:
*singleton(默认)
*prototype
*request
*session
根据类型/名字 完成自动装配 (我自己并不推荐,因为不利于我们看清楚bean 的结构)
练习:
1.基本数据类型,如何配置(String、List、Set、Map、Properties、数组)
2.引用数据类型,如何配置(其实是同上的,只是用ref了,依赖配置)
完成这个练习就配置这里没多大问题了。
关于配置当然我们可以去看它的xml约束文档
Spring默认在创建ApplicationContext的时候,就将配置文件中所有对象实例化并进行注入,我们可以采用相关的属性延迟配置文件的初始化。lazy属性,通常我们不修改,都使用默认的立刻加载
IOC(控制反转)的概念:
本来是由应用程序管理的对象之间依赖关系,现在交给了容器管理,这就是控制反转,即交给了IOC容器,Spring的IOC容器主要使用DI的方式实现的。不需要主动查找,对象的查找、定位、和创建全部都由容器管理。
简单来说IOC容器就是管理对象的容器,是个更为复杂的抽象工厂。
IOC容器带来的优点:
1.大量减少了Factory 和 Singleton 的数量,使代码的层次更加清晰,主要原因是我们不在查找、定位、创建和管理对象的创建以及对象之间的依赖关系。
2.Spring IOC容器是一个轻量级的容器,没有侵入性,不需要依赖容器的API,也不需要实现Spring的任何接口。
3.一个合理的设计尽量避免侵入性(有时候不得已要使用侵入式)
4.会使我们的框架结合工作的更好
5.提供AOP声明式服务能力,可以针对POJO对象提供声明式服务能力,如声明式事务。
6.对于资源,Hibernate Session或JDBC Connection 我们不再负责开启和关闭,把它们交给Spring容器来管理
7.鼓励我们面向接口编程,可配置可修改
8.减少代码的耦合(解耦合),将耦合推迟到了配置文件中,发生变化时也容易修改
静态代理和动态代理的模式学好了将会有助于下一部分AOP的学习理解。
Spring是有一种约定优于配置的理念
本部分最重点在于理解好IOC容器