Spring深入浅出教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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实例工厂的配置如下: