Spring 与Struts框架的整合常见方法

本文介绍了Spring与Struts框架整合的多种方法,包括不同级别的配置复杂度,从简单的插件配置到高级的依赖注入实践,帮助开发者更好地理解并应用这两种流行框架。

       Spring 与 Struts 框架的整合通常有好几种方法。每种方法都有不同的特点,而且之间的差异也挺大,对于初学者来说非常难已弄懂每种方法是如何正确配置的。通常大家在网上或者书上看到的 spring 与 struts 整 合都是只介绍一到两种,而且各自介绍的方法又大有差异。这样使初学者更难入手,甚至把各个方法混淆在一起(本人初学时就是如此)。后来经过一段时间的摸 索,参考了大量的资料后,总结出了以下四种方法。四种方法从易到难,从不常用到常用。当然这只是本人的个人观点,没有任何权威性可言,仅供参考。

 

(所有方法的前提是你已经为项目添加好了 spring 与 struts 类库)

第一种:

       需要配置的文件有: web.xml applicationContext.xml

步骤

1 、先配置 web.xml. ,首先让容器在启动的时候加载 applicationContext.xml

       需要在 web.xml 当中添加如下内容:       

< servlet >

    < servlet-name > context </ servlet-name >

    < servlet-class > org.springframework.web.context.ContextLoaderServlet </ servlet-class >

    < load-on-startup > 1 </ load-on-startup >

</ servlet >

( 这只是一种,还可以配置 Listener ,具体内容请上网搜索。 )

这里的介绍有个前提,那就是你的 applicationContext.xml 文件存放到 WEB-INF/ 文件夹下,不能是在别的文件夹,同时文件名也不可以更改为其它的文件名。

如果你真的更改了 applicationContext.xml 这个文件的路径或名字那么请在 web.xml 中加上以下内容:

<context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value> /WEB-INF/classes/spring.xml </param-value>

</context-param>

(红色部分是你自己的路径和文件名)

 

2 、配置 applicationContext.xml

       这里假设你有一个 ( Userdao .java) 类用于进行数据库的操作(具体的操作可暂时忽略)

那么我们在 applicationContext.xml 文件中进行如下配置:

< bean id = "userdao" class = "cn.oyangk.dao.Userdao" >    </ bean >

 

同时也有一个接口 ( IUserDAO .java) ,为什么要接口呢?其实这是一种编程思想――面向接口编程。

你的 Userdao .java 类实现了这个接口,那么我们在 struts 当中的 Action 中可以这样操作了。

 

ServletContext context = this.getServlet().getServletContext();

WebApplicationContext wac = WebApplicationContextUtils. getWebApplicationContext(context);

// 只有通过此种配置方法才可以使用此方法

       IUserDAO dao = (IUserDAO)wac.getBean("userdao");

// 通过 WebApplicationContext 得到 bean

这样我们就可以将操作数据库的 DAO 通过 Spring 来管理了。当我们需要使用的时候,只需通过上面的方法就可以从 spring 当中得到我们想要的 DAO 类 .

所有方法的前提是你已经为项目添加好了 springstruts 类库)

首先你的 web.xml 文件不需要像第一种方法那样去做任何的添加。只需保持默认的就行,也就是在你添加好 strutsspring 支持后默认的内容就可以。

以下为你需要进行更改的步骤:

1、             首先为了让 struts 能认识到 spring 那么先在 struts-config.xml 文件中添加 spring 插件。具体内容如下:

<!--   添加 spring 支持 -->

    < plug-in    className = "org.springframework.web.struts.ContextLoaderPlugIn" >

       < set-property property = "contextConfigLocation"

           value = "/WEB-INF/applicationContext.xml" />

    </ plug-in >

2、             修改你的 action 对应的 type 。这是因为,为了让 spring 来管理 action 那么我们需要将 action 生成权力交给 spring 具体参考以下例子:

< action

      attribute = "userForm"

      input = "/jsp/errors.jsp"

      name = "userForm"

      path = "/user"

      scope = "request"

      type="org.springframework.web.struts.DelegatingActionProxy" / > <!-- 截获 action ,让 spring 来生成 action -->

红色部分为关键的一句。通俗一点来讲,就是当我们提交表单时, struts 会把我们提交的请求先转发给 spring 。这里的红色部分所显示的类,就是用来截获我们的请求。

spring 截获到请求后。它就会在 applicationContext.xml 当中寻找对就的 bean 。这里通过 action 当中的 path=”/user” applicationContext.xml bean name 相等来进行匹配。

3、             修改 applicationContext.xml 文件。示例如下:

// 这个类是你的具体实现类,用来操作数据库的!当然他也实现了一个接口,这个接口我们会在 Action 当中使用到。

< bean id = "userdao" class = "cn.oyangk.dao.UserDAOImpl" > </ bean >

// 通过此处的 name = "/user" 与上面的 action 进行匹配。这样 spring 就知道我们的请求是转向哪个 action

    < bean name = "/user" class = "cn.oyangk.struts.action.UserAction" >

       < property name = "userdao" >

           < ref bean = "userdao" />

       </ property >

    </ bean >

4、             现在再来看 UserAction 这个类。

在这里我们只需要定义 UserDAOImpl 这个类的接口,并生成 setter 方法。

具体实现原理及过程:首先当我们提交一个请求到 struts 时, struts 会转发到 spring ,或者说是 spring 截获了我们的请求。然后 spring 根据 path 寻找对应的 action ,将请求转发到相应的 action ,同时实例化一个在此 action 当中设置好了的 dao 对象。此处为 userdao 。此后当我们在 action 类中进行操作时,由于 spring 已经将我们需要的 dao 类实例化好了,我们只需要拿到这个类的引用就可以。那如何拿到这个引用呢?这里就是为什么我们要在 action 定义这个类接口了。 spring 通过接口的 setter 方法使接口能够操作 userdao 了。

数据集介绍:电力线目标检测数据集 一、基础信息 数据集名称:电力线目标检测数据集 图片数量: 训练集:2898张图片 验证集:263张图片 测试集:138张图片 总计:3299张图片 分类类别: 类别ID: 0(电力线) 标注格式: YOLO格式,包含对象标注信息,适用于目标检测任务。 数据格式:JPEG/PNG图片,来源于空中拍摄或监控视觉。 二、适用场景 电力设施监控巡检: 数据集支持目标检测任务,帮助构建能够自动识别和定位电力线的AI模型,用于无人机或固定摄像头巡检,提升电力设施维护效率和安全性。 能源公用事业管理: 集成至能源管理系统中,提供实时电力线检测功能,辅助进行风险 assessment 和预防性维护,优化能源分配。 计算机视觉算法研究: 支持目标检测技术在特定领域的应用研究,促进AI在能源和公用事业行业的创新发展。 专业培训教育: 数据集可用于电力行业培训课程,作为工程师和技术人员学习电力线检测识别的重要资源。 三、数据集优势 标注精准可靠: 每张图片均经过专业标注,确保电力线对象的定位准确,适用于高精度模型训练。 数据多样性丰富: 包含多种环境下的电力线图片,如空中视角,覆盖不同场景条件,提升模型的泛化能力和鲁棒性。 任务适配性强: 标注格式兼容YOLO等主流深度学习框架,便于快速集成和模型开发,支持目标检测任务的直接应用。 实用价值突出: 专注于电力线检测,为智能电网、自动化巡检和能源设施监控提供关键数据支撑,具有较高的行业应用价值。
【弹簧阻尼器】基于卡尔曼滤波弹簧质量阻尼器系统噪声测量实时状态估计研究(Matlab代码实现)内容概要:本文围绕“基于卡尔曼滤波的弹簧质量阻尼器系统噪声测量实时状态估计”展开研究,利用Matlab代码实现对系统状态的精确估计。重点在于应用卡尔曼滤波技术处理系统中存在的噪声干扰,提升对弹簧质量阻尼器系统动态行为的实时观测能力。文中详细阐述了系统建模、噪声特性分析及卡尔曼滤波算法的设计实现过程,展示了滤波算法在抑制测量噪声、提高状态估计精度方面的有效性。同时,该研究属于更广泛的信号处理状态估计技术应用范畴,适用于复杂动态系统的监控控制。; 适合人群:具备一定控制系统理论基础和Matlab编程经验的高校研究生、科研人员及工程技术人员,尤其适合从事动态系统建模、状态估计滤波算法研究的相关人员。; 使用场景及目标:①应用于机械、航空航天、自动化等领域中对振动系统状态的高精度实时估计;②为噪声环境下的传感器数据融合状态预测提供算法支持;③作为卡尔曼滤波算法在实际物理系统中应用的教学科研案例。; 阅读建议:建议读者结合Matlab代码实践,深入理解系统建模滤波器设计的关键步骤,关注噪声建模滤波参数调优对估计性能的影响,并可进一步拓展至扩展卡尔曼滤波(EKF)或无迹卡尔曼滤波(UKF)在非线性系统中的应用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值