我从原始的PHP开始进行web编程,然后逐渐转向它的各种框架,然后是Django和Rails。在我使用过的每个框架中,我需要对数据库做的几乎所有事情(甚至涉及相对复杂的事情,如多对多关系)都可以由自动生成的数据库API来处理,而不需要做太多的工作。这几个更复杂的操作可以直接使用SQL或通过将多个API调用绑定在一起来完成。
现在我开始学习Java,这让我感到困惑的是,这种以后端基础设施的健壮著称的语言需要如此多的代码(这不是意味着更难维护吗?)做一些简单的事情。教程中的示例:假设您想要按姓氏进行搜索。使用Hibernate查询语言在DAO中编写方法,然后在服务中编写一个方法来调用它(这不是自动的吗?),然后从控制器调用Service方法。而在我使用过的任何其他框架中,您可以调用类似于
Person.find_by_last_name(request.POST['last_name'])直接从控制器中出来-你不需要写任何自定义的东西来做这样的事情。
有没有我还没找到的代码生成器?Eclipse中的一些东西?在我看来,被评为复杂后端的最佳选择之一的语言更难使用,这对我来说似乎并不正确。我是不是漏掉了什么?
发布于 2008-11-04 03:08:43
获胜的Grails。Groovy非常类似于Java,但是有很多很好的动态语言添加/简化。Grails有GORM,这正是您要找的。
发布于 2008-11-04 03:15:03
在您提到的示例中,看起来他们使用了比您习惯的更多的分层架构。
Controller -> Service -> DAO这提供了应用程序中的分离。这也完全依赖于您的应用程序的架构,而不是真正的Java语言。从技术上讲,Java中没有任何东西可以阻止您在控制器中调用Hibernate查询。它不会构成好的设计。
要考虑的另一件事是,“服务”可能类似于EJB,它可能具有事务管理的角色,因此对DAO/Hibernate的多个调用可以包装在单个事务中,该事务将在成功/异常时自动提交或回滚。
不过,这一切都是在您使用的体系结构/框架中实现的,而不是将Java作为一种语言。
发布于 2008-11-04 02:49:05
我建议你看看Java的Spring框架。
我没有亲自使用过它,但我听说过它的一些好消息。据我所知,它提供了与Django和Rails相同的功能。
https://stackoverflow.com/questions/260663
复制相似问题