Spring学习笔记

2026/4/24 5:09:29

三、Spring的组成

1)Spring Core:核心容器,BeanFactory提供了组件生命周期的管理,组件的创建,装配,销毁等功能。

2)SpringContext:实现了ApplicationContext接口,Spring的上下文,扩展了核心容器,提供事件处理、国际化等功能。它还提供了一些企业级服务的功能,提供了JNDI,EJB,RMI的支持。

3)Spring Web:扩展了Spring上下文,提供Web应用上下文,对Web开发提供功能上的支持,如请求,表单,异常等。

4)Spring DAO:提供对JDBC的支持,还提供了DAO的支持,提供事务支持 5)Spring ORM:对现有的O/R Mapping封装或支持 6)Spring AOP:提供切面支持

7)Spring Web MVC:全功能MVC框架,作用等同于Struts。

第二章 Spring的IoC

概念、分类、基本装配、复杂装配、组件的生命周期、事件处理

一、IoC的概念

IoC,Inversion of Control,控制反转。 又称作Dependency Injection,依赖注入。 A类要调用B类的方法:

1) A要负责创建B的实类,A要负责AB之间的依赖关系 2) 代码的耦合性高。

对象的协作关系由对象自己负责。对象的依赖关系由对象自身来建立的,这种方式的缺

5

点:代码耦合高,不易维护。

依赖注入:对象之间的依赖关系由容器动态的建立起来。容器要解决两个问题:创建对象并赋值给程序,第一件事:创建依赖关系的双方或多方;第二件事:将依赖关系建立起来。 都由容器来控制,代码耦合度低。

依赖注入:容器通过调用组件的Set方法或者构造器来建立依赖关系

二、IoC的分类

(1) 基于set方法

A IB <|---- B setIB( IB b ) f() (2) 基于构造器方式注入 A( IB b )

(3) 基于接口的方式。实现特定接口的方式,侵入式方案

分别实现特定的接口,容器将二类组装起来。

三、装配介绍

容器依照配置文件,构造实例,并将实例的依赖关系建立起来。

1、Spring容器

Spring容器负责生成、组装、销毁组件,并负责事件处理、国际化等功能。 1)BeanFactory (1) 所有容器的父接口

(2) 获得组件引用的两个方法: getBean( BeanId ); getBean( BeanName );

(3) 实现主要通过配置文件XmlBeanFactory (4) 核心容器,提供了组件的创建装备和销毁

(5) 可以把BeanFactory看成工厂对象,当客户端调用getBean方法时,BeanFactory才会立即实例化这个Bean,采用单例模式实例化的。

(6) 实现类XmlBeanFactory(),要通过个配置文件,通过ClassPathResource< Resource>来找到配置文件,路径WIN中用\\\\,UNIX中用/就可以了。

第一步,会调用Bean的缺省构造器;第二步,装配,装配过程中,可以实例化;

2)applicationContext.xml

对组件,用“bean”元素进行描述。

3)装配的内容

(1) 对基本类型和String的装配

6

2、Spring开发要用到的JAR文件

1) 核心JAR包:dist/spring.jar 2) lib / cglib中的JAR包

3) lib / jakarta-commons中的JAR包

四、基本装配

Resource:interface,用来包装资源

xmlBeanFactory:BeanFactory的一个实现,使用Resource对象来查找配置文件 BeanFactory.gerBean(“BeanId”):取得以参数命名,或者Id等于参数值的一个Bean实例。

BeanFactory(容器)在默认情况下,会采用单例方式返回对象。容器只到调用getBean方法时,才会实例化某个对象。

(1) Spring可以采用XML或者.properties文件作配置 (2) 配置文件(XML)

根元素可以有多个子元素,每个代表一个需要装配的组件以级组件 依赖关系。

BeanId要唯一的,一般和类名相同

ApplicationContext

BeanFactory的子接口

扩展了BeanFactory的功能,提供了更多的功能,主要包括事件的处理,国际化功能。只有应用、资源有限时,才用BeanFactory。一般我们用AppicationContext。

ApplicationContext默认是会在启动时,初始(实例化)所有具有单例要求的Bean的实例。

它的实现主要用ClassPathXmlApplicationContext

ApplicationContext ac = new ClassPathXmlApplicationContext(“ioc2\\\\applicationContext.xml”);、 如果有多个配置文件:

ApplicationContext ac = new ClassPathXmlApplicationContext(

new String[]({“ioc2\\\\applicationContext.xml”},{“ioc2\\\\other.xml”}) )

1、set方式注入

1)注入简单属性(String和8中基本类型)

1’在Bean类中要用Set方法,2’配置文件中配置上

7

parameterValue

id:bean的唯一标识

property中的name值表示类中要有相应的set方法 property 中的value值表示要传进来的值。

对于基本类型,Spring容器会自动作类型转换,以便赋值,不用手工的去转换。

例子代码:

HelloBean内容: package ioc1;

public class HelloBean { private String user; private int salary; public String sayHello(){ return \

}

public void setUser(String user) { this.user = user;

}

public void setSalary(int salary){ this.salary = salary; }

}

applicationContext.xml内容:

xsi:schemaLocation=\http://www.springframework.org/schema/beans/spring-beans-2.0.xsd\

zhangshan

测试类:

public class Test { public static void main(String[] args) { Resource rs = new ClassPathResource(\ BeanFactory bf=

new XmlBeanFactory(rs);//构造出容器的实例了 HelloBean hb = (HelloBean) bf.getBean(\构造实例,并根据配置文件设置属性 System.out.println(hb.sayHello());

HelloBean hb2 = (HelloBean) bf.getBean(\ System.out.println(hb==hb2);//返回TRUE,使用了单例的模式 }

}

8


Spring学习笔记.doc 将本文的Word文档下载到电脑
搜索更多关于: Spring学习笔记 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219