一、理论知识 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接口,代码如下: packagecom.asm.dao; public interface UserDao { voidsave(); } (2)建立UserDao接口的实现类,UserDaoImpl packagecom.asm.dao.impl; importcom.asm.dao.UserDao; public class UserDaoImpl implements UserDao{ public void save() { System.out.println("执行save方法..."); } } (3)在src目录下配置此beans.xml,它的配置如下: