Spring+Struts继承(方案一)

 

         SSH框架是现在非常流行的框架之一,本文接下来主要来对SpringStruts的集成进行展示.

         集成原理:Action中取得BeanFactory,通过BeanFactory取得业务逻辑对象.

         集成框架图如下:

 

 

Spring+Struts继承(方案一)_第1张图片

 

1 spring struts依赖包配置.

*struts

--拷贝struts相关java包和jstl.

--web.xml中配置ActionServlet.

--提供struts-config.xml核心配置文件.

--提供struts国际化资源文件,最好提供默认国际化文件.

*spring

--拷贝spring相关java

*SPRING_HOME/dist/spring.jar

*SPRING_HOME/lib/log4j/log4j-1.2.14.jar

*SPRING_HOME/lib/jakarta-commons/commons-logging.jar

*SPRING_HOME/lib/aspectj/aspectjrt.jar

*SPRING_HOME/lib/aspectj/aspectjweaver.jar

--提供spring配置文件.

2 web.xml文件中配置ContextLoaderListener,Web Server启动的时候将BeanFactory放在ServletContext

代码如下:

             

<!-- 找到文件名 -->
	  <context-param>
	      <!-- 此处的名字是固定死的,在ContextLoader里中的一个常量 -->
	      <param-name>contextConfigLocation</param-name>
	      <param-value>classpath:applicationContext-*.xml</param-value>
	  </context-param>
	  <!-- 设置Listener,一次性创建BeanFactory -->
	  <listener>
	      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	  </listener>

 3  Action中采用WebApplicationContextUtil.getRequiredWebApplicationContext()ServletContext中取得BeanFactory

         

//从配置文件中的监听器中获取SessionFactory,此种方法不用每次频繁的创建SessionFactory
		BeanFactory factory=WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
		UserManager userManager = (UserManager)factory.getBean("userManager");
		userManager.login(username, password);

4  通过BeanFactoryIOC容器中取得业务逻辑对象.

 

      此集成方案的不足:WEB层中知道Spring的相关内容,因为需要去主动的查找对象:BeanFactory.可以通过依赖注入的方式解决此问题.方案二便是通过依赖注入的方式来进行.

你可能感兴趣的:(Spring+Struts继承(方案一))