Spring深入浅出教程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、理论知识

1.依赖注入、控制反转

依赖注入:在运行期,由外部容器动态地将依赖对象注入到组件中

控制反转:应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部窗口负责得。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓的反转。

2.spring 的主要特性。

(1)降低组件之间的耦合度,实现软件各层之间的解耦。

(2)可以使用容器提供的众多服务,如:事务管理服务、消息服务、JMS 服务、持久化服务等等。

(3)容器提供单例模式支持,开发人员不再需要自己编写实现代码。

(4)容器提供了AOP 技术,利用它很容易实现如权限拦截,运行期监控等功能。

(5)容器提供的众多辅作类,使用这些类能够加快应用的开发,如:JdbcTemplate、HibernateTemplate.

(6)对主流的应用框架提供了集成支持。

3.常用技术

控制反转/依赖注入---面向切入编程---与主流框架的整合、管理---

二、基本实例

1.准备搭建环境

dist\spring.jar

lib\jakata-commons\commons-loggin.jar

如果使用了切面编程,还需下列jar 文件:

lib\aspectj\aspectjweaver.jar 和aspectjrt.jar

lib\cglib\cglib-nodep-2.1.3.jar

如果使用了jsr-250 中的注解,还需要下列jar 文件:

lib\j2ee\common-annotations.jar

2.搭建并测试环境

建立名为spring_01_base项目,根据需求导入jar包。建立一个Junit测试单元SpringEnvTest,测试代码如下:

@Test

public void testEnv() {

ApplicationContext ctx = new

ClassPathXmlApplicationContext("beans.xml");

}

beans.xml 配置文件在此省略(见下)。运行此测试如无错,则说明环境搭建成功。

说明:beans.xml 可以在类路径下进行配置,也可以在具体的目录下配置。可以是一个配置文件,也可以是多个配置文件组成String 数组传入。

3.实例

作如下准备工作:(1)建立UseDao接口,代码如下:

package com.asm.dao;

public interface UserDao {

void save();

}

(2)建立UserDao接口的实现类,UserDaoImpl

package com.asm.dao.impl;

import erDao;

public class UserDaoImpl implements UserDao{

public void save() {

System.out.println("执行save方法...");

}

}

(3)在src目录下配置此beans.xml,它的配置如下:

xmlns:xsi="/2001/XMLSchema-instance"

xsi:schemaLocation="/schema/beans

/schema/beans/spring-beans-2.5.xsd">

说明:bean 代表一个实质的java 类,通过它的id 可以获取一个此类的一个对象。

补充:让xml 配置文件在编译时提示

[windows][preferences][myeclipse][files and editors][xml][xml catalog] 点add,在出现窗口的location 中选“file system”,然后在spring 解压目录的dist/resources 目录中选择“spring-beans-2.5.xsd”,并将key Type 值改为“Schema Location”,key 值为:/schema/beans/spring-beans-2.5.xsd

(4)Junit 测试单元SpringEnvTest 中增加如下代码测试:

@Test

public void base() {

ApplicationContext ctx = new

ClassPathXmlApplicationContext("beans.xml");

UserDao userDao = (UserDao) ctx.getBean("userDaoImpl");

userDao.save();

}

以上的代码就是通过配置文件beans.xml 获取所需要的实例对象。

4.三种bean 的生成方式

除了上面使用的类直接生成方式,还有bean 静态工厂及bean 实例工厂。

bean 静态工厂的配置如下:

相应的工厂类代码如下:

package com.asm.dao.impl;

public class UserDaoImplFactory {

public static UserDaoImpl getUserDaoImpl(){

return new UserDaoImpl();

}

}

bean实例工厂的配置如下:

相关文档
最新文档