1利用Struts 的数据缓存、自动校验,Spring 的注入、配置事务管理,XML文件通用配置 实现 一业务数据通用保存模块。功能需求如下:
现有一思路如下:
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文档的配置提供数据保存成功后的跳转
问题:上面的设计是否可行,如可行则说出该思路的优缺点,不行的有什么方案?
从以上2点来开现在所有OR的数据库框架不适用.
如果不增加Java代码,ActionForm打算用动态FORM?
思路5不太明白,难道你想根据xml对表的描述自动生成.java文件在自动编译成.class然后反射调用?
个人觉得思路5和思路6合并XML直接生成SQL还方便点.
对于7到10没什么想法...虽然理论上貌似说的通,感觉无从下手.
个人只提1点思路:
考虑下NoSQL的数据库.比如cassandra,貌似很符合你的要求.
由于本人只是抽空了解一点,并非这方面专家.所以就不细说了.面的让人看笑话.
不过根据NoSQL的宣传,你希望的正式他们擅长的.
做成图就更好了。