- 浏览: 726223 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (442)
- 中间件 (20)
- hibernate (13)
- spring (20)
- 数据库 (78)
- struts (8)
- ibatis (4)
- 前端 (61)
- linux,windows (21)
- it大环境 (32)
- IDE工具 (36)
- 感悟 (6)
- java基础 (40)
- 经典面试题 (10)
- exception总结 (14)
- 软件设计 (8)
- 工具类应用及新技术 (48)
- php (2)
- 微信 (1)
- 设计模式 (2)
- 重构 (3)
- 管理 (2)
- 工作笔记 (1)
- jmx (1)
- 算法 (4)
- 多线程同步 (2)
- 代码管理工具 (5)
- 代码检测及测试 (2)
- 缓存服务 (1)
- SOA及ROA (5)
- groovy (1)
- 网络编程 (2)
- 大数据 (6)
最新评论
-
love398146779:
我当然不能全写上面了,这只是其中一部分https连接。
java 建立 https连接 -
yuenkin:
大哥,这是双向认证吗?
java 建立 https连接 -
issu:
例如以下代码能遍历字符串"Tom:M ...
<c:forTokens>标签delims截取字符 -
love398146779:
2*3*5=30,是30个以上的请求才拒绝呀。
tomcat的maxThreads、acceptCount(最大线程数、最大排队数) -
love398146779:
2台跟1台一样的效果。
zookeeper与activemq最新存储replicatedLevelDB整合
为了在Struts中加载Spring context,需要在struts-config.xml文件中加入如下部分:
- <struts-config>
- <plug-in
- className="org.springframework.web.struts.ContextLoaderPlugIn">
- <set-property property="contextConfigLocation"
- value="/WEB-INF/applicationContext.xml" />
- </plug-in>
- </struts-config>
<struts-config> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /> </plug-in> </struts-config>
第一种方法:
通过Struts的plug-in在Struts和Spring之间提供了良好的结合点。通过plug-in我们实现了Spring context的加载,不过仅仅加载Spring context并没有什么实际的意义,还应该经过配置将Struts的Action交给Spring容器进行管理。
- <action-mappings>
- <action path="/login"
- type="org.springframework.web.struts.DelegatingActionProxy"
- name="loginForm">
- <forward name="success" path="/main.jsp" />
- <forward name="failure" path="/login.jsp" />
- </action>
- </action-mappings>
<action-mappings> <action path="/login" type="org.springframework.web.struts.DelegatingActionProxy" name="loginForm"> <forward name="success" path="/main.jsp" /> <forward name="failure" path="/login.jsp" /> </action> </action-mappings>
在form bean这个节点上与传统的Struts配置没有什么区别,而在Action上面则发生了变化。在传统的action节点上type属性写入action类的完整类名,而和Spring结合后在这点上是使用了Spring提供的DelegatingActionProxy作为action的type属性,DelegatingActionProxy同样是org.apache.struts.action.Action的一个子类,它将把调用请求转交给真正的Action实现。通过这样的方式,Spring获得了Action实例的管理权,它将对Action进行调度,并为Struts提供所需的Action实例。这样,就可以将Action看作是Spring的一个bean,它就可以享受Spring的所有服务,如依赖注入、实例管理、事务管理等。
在applicationContext.xml中相应的配置如下的节点:
- <beans>
- .......
- <bean name="/login" singleton="false">
- <property name="userDAO">
- <ref bean="userDAOProxy" />
- </property>
- </bean>
- </beans>
<beans> ....... <bean name="/login" singleton="false"> <property name="userDAO"> <ref bean="userDAOProxy" /> </property> </bean> </beans>
最后这个bean的配置是关键,这个名为“/login”的bean与Struts中的
<action path="/login" ……> …… </action>
节点相对应,这样,Spring Bean Name与Struts Action Path相关联,当Struts加载对应的Action时,DelegatingActionProxy就根据传入的path属性,在Spring Context寻找对应bean,并将其实例返回给Struts。与此同时,还可以看到,"/login" bean 中包含了一个userDAO 引用,Spring 在运行期将根据配置为其提供userDAO 实例,以及围绕userDAO 的事务管理服务。这样一来,对于Struts 开发而言,我们既可以延续Struts 的开发流程,也可以享受Spring 提供的事务管理服务。而bean 的另外一个属性singleton="false",指明了Action 的实例获取方式为每次重新创建。这也解决了Struts中令人诟病的线程安全问题。
第二种方法:
为了在 struts-config.xml 文件中配置 DelegatingRequestProcessor,你需要重载 <controller> 元素的 “processorClass” 属性。 下面的几行应该放在 <action-mapping> 元素的后面。
- <controller>
- <set-property property="processorClass"value="http://www.zhmy.com/org.springframework.web.struts.DelegatingRequestProcessor"/>
- </controller>
<controller> <set-property property="processorClass"value="http://www.zhmy.com/org.springframework.web.struts.DelegatingRequestProcessor"/> </controller>
增加这些设置之后,不管你查询任何类型的 Action,Sping都自动在它的context配置文件中寻找。 实际上,你甚至不需要指定类型。下面两个代码片断都可以工作:
<action path="/user" type="com.whatever.struts.UserAction"/><action path="/user"/>
如果你使用 Struts 的 modules 特性,你的 bean 命名必须含有 module 的前缀。 举个例子,如果一个 Action 的定义为 <action path="/user"/>,而且它的 module 前缀为“admin”, 那么它应该对应名为 <bean name="/admin/user"/> 的 bean。
如果你在 Struts 应用中使用了 Tiles,你需要配置 <controller> 为 DelegatingTilesRequestProcessor。
如果第二种方法不行,再用第一种方法。至此,SS组合已经将Struts MVC以及Spring中的Bean管理、事务管理融为一体。如果算上userDAO 中的Hibernate 部分,我们就获得了一个全面、成熟、高效、自顶而下的Web 开发框架。
一个简单示例:
下面由我来演示spring + struts的最简单的示例,没有数据库,高手飘过,呵呵。
我用的是myeclipse3.2。
首先建立web工程ssh,加入spring框架,加入struts框架,
增加struts的 action,form,jsp组合,命名为login.
struts-config.xml中action为
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy" />
注意 type类型由spring来代理,当我们访问"/login"的时候,struts会跟据type类型来查找Spring 环境中的动作,为些,我们还要加载spring环境,可以在struts中加入一个plugin,同样在struts-config.xml中加入
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/beans.xml" />
</plug-in>
这时我们就在struts中加载了spring.
下面就是要把struts 动作注册为spring的bean.
在beans.xml中加入
<bean name="/login"
class="com.hdlb.struts.action.LoginAction">
</bean>
这样,我们就能访问"/login"这个动作了。只不过它由spring代理了。
下面写action
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
if("test".equals(loginForm.getName())&&("test").equals(loginForm.getPwd())){
System.out.println("登陆成功");
}else{
System.out.println("登陆失败");
}
return null;
}
发表评论
-
spring-boot 对没有结束符的HTML5标签解析出错解决办法
2017-10-09 11:25 935http://blog.csdn.net/ngl272/art ... -
Cannot convert value of type [java.lang.String] to required type [javax.sql.Dat
2016-12-27 11:40 1018无法将你的datasource里配置的字符串转换成javax. ... -
项目迁移(org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser
2016-01-03 09:13 1259http://bbs.csdn.net/topics/3908 ... -
详解Spring MVC 4常用的那些注解
2014-11-26 11:57 735http://aijuans.iteye.com/blog/2 ... -
spring mvc返回json格式配置要求
2014-09-09 16:11 738The resource identified by this ... -
spring的beanFactory和factoryBean
2014-08-08 20:03 8542org.springframework.beans及org.s ... -
Digest来验证
2014-08-08 19:08 545Apache默认使用basic模块验证,但它只是明文验证。 D ... -
spring security
2014-08-01 20:03 375http://baike.baidu.com/view/267 ... -
SpringMVC---返回String乱码
2014-06-16 19:29 557最近在用SpringMVC,发现一个问题。 方法名上写上注解r ... -
datasourse(dbcp,c3p0)
2014-05-09 17:06 599<bean id="fsDataSource& ... -
spring中context:property-placeholder/元素
2014-05-09 16:55 399为简化PropertyPlaceholderConfigure ... -
spring IOC之Bean的scope属性值
2014-05-05 09:57 894spring IOC之Bean的scope属性值:protot ... -
Spring连接数据库的配置与注解
2013-08-13 15:07 3308想说一下spring连接数据库,dao层可以有两种方式比较简单 ... -
Struts2与spring结合时的高并发
2013-01-31 15:25 3612原来见过一个项目,用了struts2,可是由于action里边 ... -
DataAccessException
2012-07-10 10:35 872spring框架将所有的sql或者Hibernate异常转换成 ... -
SpringJDBC调用函数及存储
2012-06-21 09:57 1609springJDBC中当sql中用到char时,最好转为Str ... -
Spring中的byname,byType及其注解
2012-05-31 15:10 3359注解时@autowire(bytype) com.orien ... -
applicationContext.xml中的util
2012-04-11 10:54 963配置文件中配置: <util:list id=& ... -
Spring如何集成struts和hibernate
2011-06-22 10:47 9091 Spring集成StrutsStruts是 ...
相关推荐
本文将深入探讨Spring与Struts结合时可能会遇到的问题以及相应的解决策略,帮助开发者更好地理解和应对这些挑战。 Spring框架以其依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...
将Spring与Struts结合使用,可以充分利用两者的优势,提高开发效率和系统可维护性。 **集成方式** 1. **通过`ContextLoaderPlugIn`初始化IoC容器** - **方案概述**:这种方案的核心是使用`ContextLoaderPlugIn`...
5. **拦截器集成**:可以使用Spring的AOP拦截器与Struts 2的拦截器相结合,增强应用的功能。 6. **测试与调试**:整合完成后,进行单元测试和集成测试,确保所有组件协同工作。 整合Spring和Struts 2可以使开发...
将Spring与Struts结合使用: Spring和Struts的集成可以让开发者充分利用两者的优势。Spring作为底层的服务层,可以处理依赖管理和事务控制,而Struts则专注于视图和控制器层面。Spring的ModelBean可以作为Struts的...
在IT行业中,Spring和Struts都是非常著名的Java Web框架...这只是一个基础的集成方法,实际上还有其他的集成方式,如使用Spring MVC替代Struts,或者结合其他框架如Hibernate进行数据持久化操作,进一步优化应用架构。
当Spring与Struts结合时,可以实现更高效、更灵活的应用架构。本文将深入探讨`spring-webmvc-struts.jar`这个组件,以及其源代码中的关键知识点。 一、Spring MVC与Struts的融合 `spring-webmvc-struts.jar`是...
5. **Spring AOP与Struts拦截器**:两者的拦截机制可以结合使用,提供更丰富的功能,例如性能监控、异常处理等。 6. **Action的实现**:Action类可以被声明为Spring的bean,通过@Autowired注解注入所需的依赖。 7....
- **使用 Spring 与 Struts 结合**:Spring 可以与 Struts 结合使用,例如通过 Spring 管理 Struts 的 Action 实例。 - **集成优势**: - **松耦合**:通过依赖注入(DI)减少对象间的耦合度。 - **可测试性增强*...
在 Spring 和 Struts2 结合使用时,通常会使用 Struts2 作为前端控制器,负责接收和处理 HTTP 请求,然后通过 Spring 的 DI 功能来管理和调度业务逻辑层的对象。Spring 可以作为服务层的容器,管理 DAO(数据访问...
Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,而Struts2则以其优秀的MVC设计模式著称,两者结合可以构建出高效、可维护的Web应用。本文将基于"spring+struts2整合源码"的标题和描述,详细讲解Spring和...
- 结合Spring AOP进行更细粒度的缓存控制,如按用户、按条件动态缓存。 - 注意数据的一致性问题,合理设置缓存失效策略,避免脏读。 通过SSH+Redis的整合,可以构建出高并发、高性能的Java Web应用,充分利用...
在整合项目中,Spring与Struts可以无缝集成,Spring可以管理Struts的Action,增强其功能。 **MyBatis框架** 是一个轻量级的持久层框架,它简化了数据库操作,通过XML或注解的方式配置SQL语句,将SQL与Java代码分离...
在Java Web开发中,Spring和Struts2是两个非常重要的框架。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,而Struts2则是一款优秀的MVC框架,提供了良好的动作控制和视图展示。将两者集成可以构建出功能...
6. **国际化与主题支持**:Spring和Struts整合后,可以利用Struts的国际化和主题功能,结合Spring的资源文件加载,实现全球化和界面定制。 7. **错误与异常处理**:通过Spring的AOP,可以集中处理Struts中的异常,...
Spring提供了全面的结构化和依赖注入功能,Struts2则是一个强大的MVC(Model-View-Controller)框架,而MyBatis则是一个优秀的持久层框架,实现了SQL与Java代码的解耦。当这三者结合使用时,可以构建出高效、可维护...
这个架构结合了Spring框架、Struts2框架和iBatis(现在称为MyBatis)来构建高效且可维护的Web应用。下面将详细阐述这三个框架以及它们在整合中的作用。 1. Spring框架:Spring是Java企业级应用的核心框架,它提供了...
Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们分别在不同的层面上解决了Web应用中的各种问题。Spring作为一款全面的后端框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能;Struts则...
Struts2通过Action类处理请求,并可以与各种结果视图技术(如JSP、FreeMarker等)结合,实现了灵活的视图展现。它还可以与Spring框架无缝集成,实现服务层和DAO层的管理。 Hibernate框架: Hibernate是一个对象关系...
Struts2可以与CXF结合,通过Action跳转到不同的服务接口,从而提供动态的服务调用能力。 【标签】"CXF+spring WebService CXF"强调了这些组件的集成,特别是CXF作为Web服务的主要提供者,以及与Spring的紧密配合。...