技术开发 频道

EasyJWeb vs Struts2



四、依赖注入
  两个框架都实现了依赖注入,都能自动往Action中自动注入所需要的业务组件。EasyJWeb的依赖注入直接依靠他内置的IoC容器,而Struts2的依赖注入依靠拦截器ActionAutowiringInterceptor进行注入。EasyJWeb的依赖注入是真正实现不要任何配置就能自动注入应用程序中各层(业务层、持久层等)中用到的业务组件的,你可以通过这个简单的添删改查实例来看见效果。
  两者都可以直接借助第三方的IoC容器如Spring。下面是在EasyJWeb中使用Spring容器,需要在EasyJWeb的配置文件中加入下面的配置:
<!-- 申明Spring为easyjweb 应用容器开始 -->
  
<bean name="springContainer"
   class
="org.springframework.web.context.support.XmlWebApplicationContext">
   
<property name="configLocations">
    
<list>
     
<value>WEB-INF/classes/application.xml</value>
    
</list>
   
</property>
  
</bean>
  
<bean name="innerSpringContainer"
   class
="com.easyjf.container.impl.SpringContainer">
   
<property name="factory" ref="springContainer" />
  
</bean>
  
<!-- 申明Spring为easyjweb 应用容器结束 -->
 
</beans>

 

Struts2可以使用代理的方式,先在web.xml文件中通过下面的配置启动spring容器:
<listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
然后在struts的配置文件使用指定struts.objectFactory为spring即可。
<constant name="struts.objectFactory" value="spring" />

另外一点区别是,EasyJWeb的Action都是由EasyJWeb的IoC容器管理,不需要用其它容器来管理,因为EasyJWeb的IoC容器会把其它容器中的业务组件注入到Action的相应属性中,你可以把业务组件同时放在EJB容器、Spring容器、或者Guice容器中。

0
相关文章