- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring串讲
Spring串讲
Spring的基本内容
什么是Spring:
是一个用来简化企业级程序开发的分层的框架。它旨在分离体系结构的层次,因此每一层都可以修改而不会影响到其它层。层与层之间的依赖通常是以接口的形式表现,以确保其耦合尽可能松散。
Spring的组成(7个模块):
SpringCore:Spring的核心容器,主要提供了组件的创建、装配、销毁的基本功能。
SpringContext:Spring上下文,基于Spring核心容器,扩展了核心容器,主要提供了事件处理、国际化等功能。
SpringAOP:提供了AOP编程的支持。
SpringDAO:提供了JDBC的支持、一种实现编程性和声明性的事务管理方法。
SpringORM:提供了对O/R mapping的支持,对Hibernate、JDBC等的再次封装。
SpringWeb:基于Spring上下文的,提供了 webApplication的容器,方便web的集成。
SpringWebMVC:提供了MVC的一个完整的实现。
Spring的核心内容
IOC (Inversion of control): 控制反转/依赖注入
IOC的概念:控制反转/依赖注入,组件之间的依赖关系由容器在运行时决定
组件:JavaBean
依赖关系:调用/包含
容器:Spring
控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系
IOC的优点:
代码的耦合度低
代码的维护性好
代码量少
IOC的核心 --- BeanFactory
BeanFactory是所有容器的父接口,它提供了基本的对象的装配的支持
XmlBeanFactory是他最常用的实现之一。
在Spring中,BeanFactory创建的各个实例称作Bean
BeanFactory只有在客户端调用时才实例化对象,即调用getBean()时容器才会创建对应的组件的实例,在默认情况下返回的对象采用单例模式。
getBean(“Bean的名称”)返回id所指向的对象
注:Bean的名称:
Bean id=” ” Bean的名字不允许重复的
Bean name=” ” Bean的名字有特殊字符,如:/
BeanFactory创建Bean的三种方式:
通过构造方法直接创建:
bean id=”” class=”bean class name”
通过静态工厂方法创建:
bean id=”” class=”factory class name” factory-method=””
通过非静态工厂方法创建:
bean id=”factory” class=”factory class name”
bean id=”” factory-bean=” factory” factory-method=””
ApplicationContext
ApplicationContext是BeanFactory的子接口
它扩展了BeanFactory的功能,它增加事件处理、国际化等支持
ClassPathXmlApplicationContext 是其最常用的实现之一
它可以预先国际化Bean,只对scope=“singleton(单例)”初始化
注:scope是Bean的一个属性
Bean id=“”class=“” scope=“”
IOC类型(依赖注入的方式):
基于构造器的方式()
constructor-arg index=””/ constructor-arg
constructor-arg type=””/ constructor-arg
注:index表示构造方法中的参数索引(第一个参数索引为0)
type表示构造方法中参数的类型
多个属性要写多个,并且顺序不能变
Setter方法(推荐使用)
property name=”属性名”/property
其中,name属性的取值依setter方法名而
两种注入方式的区别:
·Constructor:可以在构建对象的同时把依赖关系也构建好,安全性高。但是必须对每一个属性都要赋值。
·Setter:如果对象的属性比较多,并且属性值并不是每一个都要赋值时使用Setter注入。创建完对象之后再通过set()方法进行属性的设定,
设置属性时可选的标签
value:基本类型(包装类型)或String类型
bean id=Bean的名字 class=包名+类全名
property name=属性名,来用set方式注入
value属性的值/value //由Spring自动进行类型转换
/property
/bean
例:
property name=value
文档评论(0)