22 } 23
public void setAddress(String address) {
24 this.address = address; 25 } 26} 27
SpringTest.java:
1package test.spring; 2
3import org.springframework.context.ApplicationContext; 4
import org.springframework.context.support.ClassPathXmlApplicationContext;
5 6 7
public class SpringTest {
public static void main( String[] args ) {
8 //加载spring配置文件,初始化IoC容器
9 ApplicationContext ac = new ClassPathXmlApplicationContext(\
10 //从容器 接管Bean
11 TUser user = (TUser) ac.getBean(\12 //输出欢迎信息
13 System.out.println( \ is in \
14 } 15} 16
创建完毕后,就剩最后一步了,在applicationContext.xml中配置一个bean,在xml中增加如下代码:
好了,下面运行一下吧,右键单击SpringTest.java选择run as ?Java Application,运行结果如下:
如果你的运行结果和上面一样,且没有异常,则说明Spring配置成功了。是不是很简单?不要骄傲,重要的是Spring与Hibernate、Struts的整合。继续吧!
5.3 整合Struts
Spring与Struts的整合其实就是把Struts的Action类交给Spring来管理,下面开始吧!
1) 导入jar包。在Struts2.1.6的lib目录中找到struts2-spring-plugin-2.1.6.jar,引入到工程中。
2) 配置web.xml文件。在web.xml中加入以下代码:
org.springframework.web.context.ContextLoaderListener
1) 现在就来看如何把struts的action交给spring。以struts示例中的login.action为例,首先创建一个LoginAction类的Bean。在applicationContext.xml中增加如下代码:
这里,我们把这个bean的id设为loginAction。Scope设为prototype,含义是每一次请求创建一个LoginAction类的实例,Scope还有另一个值“singleton”意为“单例模式”。
接下来修改struts.xml文件,把原来login.action的配置做如下修改:
把
注意到有什么区别了吗?class值设为了loginAction,即LoginAction类的bean的ID。这样我们就把LoginAction类交给了spring管理。至于具体是怎么处理的,秘密在struts2-spring-plugin-2.1.6.jar中,有空自己就去研究吧,现在会用就可以了。
5.4 整合Hibernate
Spring整合Hibernate主要是对hibernate的Session进行管理,包含Session的创建、提交、关闭的整个生命周期。Spring对事务的管理应用了AOP的技术,配置前请先了解一下AOP的知识。
1) 配置sessionFactory,让spring来创建Session。在applicationContext.xml中增加如下代码:
我们原来是用HibernateSessionFactory.java来创建Session的,现在删除即可,交给Spring创建。这里,创建了一个Session工厂类的Bean,其ID为“sessionFactory”。
2) 配置事务管理器。增加如下代码: