为Java / Spring / Tomcat Web应用程序淘汰MongoDB或Couch的Hibe
我有一个正在进行大规模返工的应用程序,我一直在探索不同的选项 – “按原样”进行调整,在不同的框架或平台中重做项目等.
当我真的想到它时,这里有三个我不喜欢java的主要内容: >修改控制器或其他类时服务器启动/停止.动态语言在这里是对Java的巨大胜利. 在思考问题之后……如果我摆脱Hibernate,我可以解决或至少改善所有这三个方面的情况. 你们有没有重新设计过50个实体java应用程序来使用mongo或沙发或类似的数据库?经历是什么样的?你推荐它吗?假设你有一些非常棒的单元/集成测试需要多长时间?这个想法听起来比实际更好吗? 如果我可以存储文档,我的应用程序实际上会在许多方面受益.它实际上会为这个应用程序打开一些非常酷和有趣的功能.但是,我确实希望能够为复杂的搜索创建动态查询……而且我被告知Couch不能这样做. 对于NoSQL数据库,我真的很环保,所以任何有关迁移(或不迁移)大型java / spring项目的建议都会非常有用.另外,如果这是一个好主意,你会推荐哪些书籍让我加快速度,并以最好的方式真正利用它们来应用这个应用程序? 谢谢 解决方法
无论如何,你的咆哮不仅仅包括先前为Hibernate做出的(传统)决定的问题,还包括你作为程序员的开发.
如果类似的项目放在我的膝盖上并且急需重构或改进,我就会这样做. 这取决于软件生命周期的阶段以及如果您要进行重大更改或坚持使用较小的更改所涉及的时间压力.然而,从长远来看,以增量进行迁移似乎是您的最佳选择. 保持短期内用Java编写的应用程序似乎是明智之举,另一种语言的重大改写肯定会破坏接受和集成测试. 像约瑟夫建议的那样,从Hibernate迈向JPA.它不应该花费太多时间.从那里你可以将后端切换到其他一些存储方式.努力解决问题.选择看起来最好的概念,有些人更喜欢MVC而其他人可能会选择CQRS,还有一些人喜欢另一种分割/分离方式. 由于JVM支持多种语言,因此您始终可以切换到其中任何一种语言,或者至少部分地以更动态的语言实现功能.这将解决部分问题,即您不断碰到Java的“愚蠢”,同时仍然保留当前JVM在运行时的出色优化. 此外,您可能希望设置自动集成测试…因为希望永远不会从IDE运行应用程序,所以这些测试将为您提供真实的结果. 旁注:如果IDE具有将自己的库注入构建或运行时路径的功能,我从不相信我的IDE能够正确获取依赖关系. 简而言之:小步骤;失去Hibernate并对JPA更加抽象;如果Java变得愚蠢,那么逐渐转向一种聪明的语言.您主要关注的是重构代码库而不会丢失功能,请记住,开放式设计将使以后更容易添加有趣和酷炫的功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 为什么此代码段不会出现Java Tutorials文档中所述的运行时错
- java byte数组与int,long,short,byte的转换实现方法
- Java数据结构之数组(动力节点之Java学院整理)
- java – 为什么属性更改listener而不是observable
- Java下载文件时文件名乱码问题解决办法
- java – 简单的方法来启动一个独立的JNDI服务器(并注册一些
- java – 读取gz文件并跟踪文件中的位置
- java – 确定maven deploy-file的存储库URL
- java – 在数据库中存储可序列化对象
- java – treemap vs arraylist – 迭代/添加/编辑值时的性能