首页 新闻 赞助 找找看

请教一个设计方案

0
悬赏园豆:180 [已关闭问题] 关闭于 2010-09-16 21:09

  1利用Struts 的数据缓存、自动校验,Spring 的注入、配置事务管理,XML文件通用配置 实现       一业务数据通用保存模块。功能需求如下:

  • 在不增加Java代码的情况下能够实现新业务数据的保存
  • 在不增加Java代码的情况下能够实现业务数据的扩充(数据项的增减)
  • 能够实现单表、主子表、单条记录、多条记录的自动保存
  • 是所有业务数据保存时的唯一入口
  • 能够提供业务数据可配置性的自动校验(必录、长度、正则表达式等)
  • 提供切换数据库的可能性
  • 异常能够进行统一处理
  • 能够提供模块运行的详细日志

 

现有一思路如下:

1.   通过Struts 的通用ActionForm 实现各种业务数据表单的数据收集

2.   通过Struts 的ActionForm 的 validate方法实现数据的自动校验

3.   复写 ActionMapping 的setInput 方法实现不同表单异常时的返回

4.   每个业务表单数据与数据库之间的对应通过XML文件配置,包含数据的校验、数据的类型(字符串、日期)、格式化方法

5.  设计一XML解析类将4中描述的XML文档解析为Java对象

6.  设计一辅助类实现将5中解析出的对象转换为对应的SQL语句

7.  在数据库DAO 层通过继承Spring的JdbcDaoSupport对象设计一数据库DAO层,专门负责执行6中解析出的SQL语句,并通过Spring 中的Transactional提供的注释行配置事务将所有SQL执行纳入到一个事务范围,确保数据保存的事务性,同时利用Log4j提供SQL的运行日志

8.  6所描述的辅助类实现接口编程,再通过Spring 接管Action 方式将正确类型的辅助类注入到Action中,实现数据库切换的可能性

9.   7中的DAO层通过Spring的注入机制运行时注入至Action 中,实现数据的自动保存,并提供切换DAO层的可能性

10.通过XML文档的配置提供数据保存成功后的跳转

 

问题:上面的设计是否可行,如可行则说出该思路的优缺点,不行的有什么方案?

orderyan的主页 orderyan | 初学一级 | 园豆:20
提问于:2010-09-15 20:51
< >
分享
所有回答(2)
0
  • 在不增加Java代码的情况下能够实现新业务数据的保存
  • 在不增加Java代码的情况下能够实现业务数据的扩充(数据项的增减)
  • 从以上2点来开现在所有OR的数据库框架不适用.

    如果不增加Java代码,ActionForm打算用动态FORM?

    思路5不太明白,难道你想根据xml对表的描述自动生成.java文件在自动编译成.class然后反射调用?

    个人觉得思路5和思路6合并XML直接生成SQL还方便点.

    对于7到10没什么想法...虽然理论上貌似说的通,感觉无从下手.

    个人只提1点思路:

    考虑下NoSQL的数据库.比如cassandra,貌似很符合你的要求.

    由于本人只是抽空了解一点,并非这方面专家.所以就不细说了.面的让人看笑话.

    不过根据NoSQL的宣传,你希望的正式他们擅长的.

    Jerry Young | 园豆:435 (菜鸟二级) | 2010-09-16 01:10
    0

    做成图就更好了。

    小☆兵 | 园豆:215 (菜鸟二级) | 2010-09-16 09:03
    清除回答草稿
       您需要登录以后才能回答,未注册用户请先注册