浅谈struts和依赖注入在项目中的应用

我喜欢struts,喜欢ibatis,喜欢spring,但我却喜欢.net,这实在是件很矛盾的事情。.net很好用,但在做项目的过程,总觉得缺少了点什么,对了,是框架。在java的世界里,有着许多成熟优秀的框架,但.net的框架,可选择的实在很少。在盼星星盼月亮的漫长过程里,终于盼到了Asp.net MVC,恕我不才,看来看去,都觉得这Asp.net MVC用起来实在是麻烦。我还是喜欢使用struts,尽管我很烦恼那些配置文件,但配置文件确实给我们带来了很多的好处。能轻松的扩展,轻易的修改。不过tomcat实在很垃圾,修改了配置文件居然还要重启。我喜欢.net,喜欢c#,喜欢Visual Studio,我觉得c#使用起来很自然,很舒服。然而,我害怕面对一张复杂的表单,想要获取几十个,上百个数据项实在是种痛苦。我经常的想,要是.net也有个struts的框架该多好啊,既然没有,那么,就让我来设计一个吧。

当然,struts的设计并不是为了仅仅解决获取表单数据麻烦的事情,要是仅仅如此,那就实在是太大题小作了,封装表单数据只是它的功能的开始,有了数据还需要对它们进行验证。有些人可能觉得,数据验证我都在前台进行了,后台就不需要对数据再进行验证,我只想说,这实在是件很危险的事情。我不打算讨论前台数据验证可不可靠,我个人觉得,它是不可靠的,即使它可靠,但是多一层的验证不是更确保系统的安全吗?验证完数据之后就是执行业务逻辑了,然后就是页面的跳转或者返回请求的页面。Struts让这个流程自动地执行了,我们所要做的,只是往Validate和Execute这两个方法中添加逻辑代码。根据ISO的管理理念,员工做的事情越单一,熟练度也就越高,出错的几率就越小。struts的设计,是完全符合软件工程的设计思想的。

配置文件是struts核心的一部分,许多人都不喜欢使用配置文件,我也是其中一个。记得刚开始接触struts的时候,对它的配置文件实在是很烦,但慢慢地,了解了配置文件的作用之后,就喜欢上使用配置文件了。配置文件在项目中的作用是毋庸置疑的,在大型的项目中尤其重要。需求是不断地改变的,但我们的程序可不能老跟着需求变,即使老板吃得消,员工也吃不消啊。改变一个页面的业务逻辑,只需要在配置文件中修改一下action的配置就可以了,其它的代码都不需要改变。说到配置文件,它还有一个很重要的作用,那就是“控制反转”或者“依赖注入”,其实我也搞不清这两个词语之间是什么关系。不过,也没必要在这些文字间咬文嚼字,就用IOC来代替它们好了。在开发过程中,经验会遇到一个类里面包含另一个类的实例,如:

class A
{
  ………..
}
class B
{
  A a = new A();
}

那么,在上面的代码中,B将依赖于A,也就是说,没有A,B就无法正常的执行。这样,B和A就产生了耦合。说得再明白一点,如果B的业务逻辑需要改变了,不想使用A,而是使用C,那么,就需要修改B的代码,还要重新编译,这对于大型的系统来说,需要起来代价是很大的。为了达到高内聚低耦合的需要,我们应该让B依赖于抽象而不是具体。比较常用的方法是使用工厂模式,如:

interface IA
{
  ……
}
class A
{
  ………..
}
class B
{
  IA a = Factory.CreateA();
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 数据
, struts
, 验证
, 配置
一个
struts2依赖注入、struts依赖注入、浅谈依赖注入、struts2依赖包、struts2 service注入,以便于您获取更多的相关知识。

时间: 2024-10-29 16:01:11

浅谈struts和依赖注入在项目中的应用的相关文章

浅谈.NET编译时注入(C#-->IL)

原文:浅谈.NET编译时注入(C#-->IL)      .NET是一门多语言平台,这是我们所众所周知的,其实现原理在于因为了MSIL(微软中间语言)的一种代码指令平台.所以.NET语言的编译就分为了两部分,从语言到MSIL的编译(我喜欢称为预编译),和运行时的从MSIL到本地指令,即时编译(JIT).JIT编译分为经济编译器和普通编译器,在这里就不多说了,不是本文的重点.本文主要讨论下预编译过程中我们能做的改变编译情况,改变生成的IL,从编译前后看看微软C#3.0一些语法糖,PostSharp

Core Data浅谈系列之十 : 关于数据模型中实体的属性

之前写了<Core Data浅谈系列汇总>,今天稍微回顾了下,做些补充. 在这个系列的第一篇<基础结构>中(2013年1月份的文章,时间过得好快啊!),有简单带过Entity的Attribute: 数据类型.布尔值统一用NSNumber来表示: 字符串类型用NSString表示: 时间类型用NSDate表示: 二进制数据类型用NSData表示: 非标准类型用Transformable来表示: 而Attribute还有其自身的Properties,比如Transient表示不用持久化

一起谈.NET技术,在VS2010项目中引用Lib静态库(以Openssl为例)

Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法.常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用. 首先下载Openssl包:(http://www.openssl.org/),这是一个C语言类库包,在Windows下可以通过Perl对该类库包进行MakeBuild,产生libeay32.ssleay32的Lib以及Dll文件,具体操作详见:http://blogger.org.cn/blog/more.asp?name

浅谈Struts框架及其组成部分

一,什么是框架? 所谓框架就是提供了一组统一的接口和编程方式的可以重用组件,同时我们可以在框架中扩充我们自 己的特定逻辑. 二,MVC设计模式 将应用程序分为3个部分:模型 Model,视图View,控制器Controller:模型组件:负责业务逻辑:模 型包含应用程序的核心功能.模型封装了应用程序的状态.有时它包含的唯一功能就是状态.它对视图或 控制器一无所知.视图组件:负责表示业务范围的视图:视图提供模型的表示.它是应用程序的外观.视 图可以访问模型的读方法,但不能访问写方法.此外,它对控制

浅谈Struts标签logic:iterate

< logic:iterate >是Logic Struts标签库中最复杂的标签,也是用途最广的一个标签,它能够 在一个循环中遍历数组.Collection.Enumeration.Iterator 或 Map 中的所有元素. 1. 遍历集合 的 name 属性指定需要进行遍历的集合对象, 它每次从集合中检索出一个元素, 然后把它放在page 范 围内, 并以id 属性指定的字符串来命名这个元素, 例如: < % Vector animals = new Vector(); animal

浅谈Windows系统下C语言编程中Glib库的使用_C 语言

在这个C的变成世界里,有许多实用的库,其中最有名的且最通用(跨多个平台的实现包括Windows,要知道很多实用的编程库都不提供Windows的实现)就是GLib这个库,其中就有实现线程的部分. glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实用性. glib是Gtk +库和Gnome的基础.glib可以在多个平台下使用,比如Linux.Unix.Windows等.glib为许多标准的.常用的C语言结构提供了相应的替代物. 如果在程序中要使用到glib库中的函数,则应该包

浅谈ASP.NET MVC在前端开发中的局限性

ASP.NET MVC 如果你还没有接触过后端的MVC框架的话,不妨先看看下面这段ASP.NET MVC代码并且了解一下后端MVC的工 作原理.它摘自ASP.NET MVC教程中非常著名的项目MVC Music Store一段Controller组件代码: public class StoreManagerController : Controller { private MusicStoreEntities db = new MusicStoreEntities(); // GET: /Sto

浅谈Symphony Spreadsheet在Excel报表测试中的应用

读者通过阅读本文,可以学习到 Symphony Spreadsheet 简单公式的书写,以及一些使用技巧,可以快速的运用到报表测试中,降低测试复杂度,有效提高测试结果准确性. 报表测试中常见数据对比 在 ERP 和 BI 项目测试过程中,对报表数据进行校验是非常有必要的,常见的数据对比场景如下:从系统导出的 http://www.aliyun.com/zixun/aggregation/16544.html">Excel 格式的报表数据,然后再给一份业务数据的源数据,要求校验报表数据是否正

浅谈内链在企业网站优化中的重要性

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 有许多站长都认为网站优化就是不断地增加外链,而在这些外链数量后就开始对SEO产生无助,因为这些付出根本没有让网站关键词排名和权重有所提升. 那么一个企业网站优化到底要怎么进行才能看到效果呢?其实只要优化好关键词内链布局,不管什么类的企业网站最终都会有所变化,而且关键词排名也慢慢提升,下面就由星梦网络来谈下内链在企业网站优化中的重要性. 内链可