Spring框架的一个亮点就是能实现注入并且可以对实例化的Bean进行管理。
本文将对Spring框架的配置做一个详细的讲解。
一般情况下Spring是不单独使用的,而是和Hibernate配合使用,或者与Hibernate和Struts配合使用。
本文将通过Hibernate与Spring的配合使用,并通过JUnit进行简单的数据测试,已验证Spring是否配置成功。
配置Spring的大致步骤如下:
1.加入Spring所依赖的Jar
2.编写applicatioinContext.xml文件
3.编写一个基本的Dao操作类
4.编写测试方法
一、加入Spring所依赖的Jar包
点击这里下载:http://pan.baidu.com/s/1o6E1vzs 密码:uijc
其中Jar包的作用如下:
spring-beans-2.5.2.jar 访问配置文件、创建和管理bean 以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类
spring-context-2.5.2.jar 以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类
spring-core-2.5.2.jar 框架基本的核心工具类
spring-jdbc-2.5.2.jar 包含对Spring 对JDBC 数据访问进行封装的所有类
spring-orm-2.5.2.jar 对映射框架的一些支持
spring-tx-2.5.2.jar 提供对事务的支持
commons-logging-1.1.3.jar 是Struts中的一个Jar包。但Spring需要它,如果没有它,Spring会报错。
同时如果你没有加入Hibernate所必须的Jar包,请阅读我的另一篇博文,在这里你可以找到Hibernate所必须的Jar包:Hibernate框架配置详解
二、编写applicatioinContext.xml文件
1 <?xml version="1.0" encoding="UTF-8"?>2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:context="http://www.springframework.org/schema/context"
5 xmlns:aop="http://www.springframework.org/schema/aop"
6 xmlns:tx="http://www.springframework.org/schema/tx"
7 xsi:schemaLocation="http://www.springframework.org/schema/beans
8 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
9 http://www.springframework.org/schema/context
10 http://www.springframework.org/schema/context/spring-context-2.5.xsd
11 http://www.springframework.org/schema/aop
12 http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
13 http://www.springframework.org/schema/tx
14 http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
15
16 <!-- Spring整合Hibernate:直接饮用hibernate配置文件-->
17 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
18 <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
19 </bean>
20
21 <!-- 创建baseDao对象 -->
22 <bean id="baseDao" class="com.basehibernate.dao.impl.BaseDaoImpl">
23 <!-- 在Dao中使用hibernateTemplate必须注入sessionFactory -->
24 <property name="sessionFactory" ref="sessionFactory"/>
25 </bean>
26 </beans>
三、编写一个基本的Dao操作类
BaseDao接口类:
1 package com.basehibernate.dao;2
3 /**
4 * 公用DAO接口类
5 * 时间:2014年6月4日 10:45:47
6 * @author chenyr
7 */
8
9 public interface BaseDao {
10
11 /**
12 * 保存对象
13 * @param obj
14 */
15 public abstract void save(Object obj);
16
17
BaseDaoImpl 类:
1 package com.basehibernate.dao.impl;2
3 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
4 import com.basehibernate.dao.BaseDao;
5
6 /**
7 * 公共DAO实现类
8 * @author chenyr
9 *
10 */
11 public class BaseDaoImpl extends HibernateDaoSupport implements BaseDao { //继承了HibernateDaoSupport类,需要注入SessionFactory对象
12 /**
13 * 保存对象
14 */
15 public void save(Object obj) {
16 getHibernateTemplate().save(obj);
17 }
18
四、编写测试方法
SpringTest类:
1 package com.basehibernate.test;2
3 import org.junit.Test;
4 import org.springframework.context.ApplicationContext;
5 import org.springframework.context.support.ClassPathXmlApplicationContext;
6 import com.basehibernate.dao.BaseDao;
7 import com.basehibernate.pojo.Employee;
8
9 public class SpringTest {
10
11 static ApplicationContext ctx = null;
12 @Test public void initParam()
13 {
14 ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
15 BaseDao dao = (BaseDao)ctx.getBean("baseDao");
16
17 Employee empl = new Employee();
18 empl.setEmplName("员工11");
19 empl.setPassword("1111");
20 empl.setPwFlag(true);
21 empl.setAutoEat(true);
22
23 dao.save(empl);
24 }
25
注:这里介绍的是桌面程序的一个配置情况,如果你是在J2EE网站开发使用Spring,那么你可能需要在web.xml中进行一些监听器的配置。
<listener><listener-class>org.springframework.context.ContextLoaderListener</listener-class>
</listener>
配置的目的是为了在服务器启动的时候让Spring去加载application-Context.xml文件。(2014年10月20日 15:56:39)