重点:
- 1、什么是Spring;
- 2、ioc的优势;
- 3、Spring注入方式;
重点解析:
一、Spring是什么,使用有什么好处
-
什么是spring,它能够做什么?
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 -
什么是控制反转(或依赖注入)
控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,
而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:
(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
IoC还有一个另外的名字:“依赖注入 (DI=Dependency Injection)” ,
即由容器动态的将某种依赖关系注入到组件之中
案例:实现Spring的IoCIOC/DI
将以前由程序员实例化对象/赋值的工作交给了spring处理
3、IOC的优点:
<1>. 不用自己new对象,把创建对象的任务交给spring框架,spring自动生成( 将以前由程序员实例化对象/赋值的工作交给了spring处理).
<2>. 便于维护,管理javabean,
<3>.实现组件之间的解耦,提高程序的灵活性和可维护性。
4、spring的优点
4.1.低侵入式设计,代码污染极低
4.2.独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺
4.3.Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦
4.4.Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用
4.5.Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问
4.6.Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部
二、spring的应用
1、spring注入的方式和类型
ioc可以通过上下文管理工程里的所有javabean,管理方式有很多种 如下:
1.set注入(提供set/get方法)
基本数据类型注入 eg.studentAction
集合注入 eg. studentAction
对象注入 eg. teacherAction
2.构造注入(提供构造方法)
基本数据类型注入 constructor-arg name=“属性名” value=“值”>
3.自动装配(经典两种 byText 、byName)
byText | byName |
---|---|
如果说某个Javabean,要使用接口,之前是需要同set注入,或者构造注入,给一个个接口去注入实现类。当你选择自动装配bytype时,那么springContext会在整个上下文自动去寻找该接口的实现类 | 如果说某个Javabean,要使用接口,是通过接口的属性名去spring-Context中去需找id=接口名的实现类 |
2、如何在spring当中定义和配置一个JavaBean(使用无参构造方法+set方法创建一个JavaBean)
3.1 id:在容器中查找Bean的id(唯一、且不能以/开头)
3.2 class:bean的完整类名
3.3 name:在容器中查找Bean的名字(唯一、允许以/开头、允许多个值,多个值之间用逗号或空格隔开)
3.4 scope:(singleton|prototype)默认是singleton
3.4.1 singleton(单例模式):在每个Spring IoC容器中一个bean定义对应一个对象实例
3.4.2 prototype(原型模式/多例模式):一个bean定义对应多个对象实例
3.4 abstract:将一个bean定义成抽象bean(抽象bean是不能实例化的),抽象类一定要定义成抽象bean,非抽象类也可以定义成抽象bean
3.5 parent:指定一个父bean(必须要有继承关系才行)
3.6 init-method:指定bean的初始化方法
3.7 constructor-arg:使用有参数构造方法创建javaBean
如何创建spring的xml文件
第一步: ctrl+n在Wizards里面输入spring就会出现下面的样子,前提是导入了springsource-tool 插件才会有。点击 Spring Bean Configuration File,进入下一步
第二步:
在resources里面加入spring xml,在File name里面填入xml的名字加
.xml
第三步:选择app、beans、context 就好了,点击finish