我是一个java开发人员。我想自己开发一个网站。我想选择一个快速的web应用程序框架。我对spring有一些经验。现在我想知道我是否应该选择另一个web框架。这是我想要的清单:
我听说过ruby、python、groovy和scala。我应该把这些纳入我的选择吗?这需要多少额外的努力?我应该把我的时间花在这些上,还是留在Java世界?请给我一些建议。
非常感谢。
发布于 2011-02-24 17:42:28
如果您愿意考虑Python (听起来是这样的),您应该查看web2py。
很容易设置并试用它--只要下载,解压缩,并运行它。它不需要安装或配置,没有依赖项(二进制发行版甚至包括自己的Python解释器),还包括一个启用SSL的web服务器、一个关系数据库、一个脚手架应用程序和一个带有错误记录和票务系统的基于web的IDE/管理接口。它是一个集成得很好的全堆栈框架,具有许多特性,包括缓存、会话管理、国际化、身份验证和基于角色的访问控制、web服务、Ajax等。
我不太熟悉Spring,但我认为您会发现web2py不那么冗长。例如,请参见本Spring教程 --下面是web2py中的等效代码(实际上,web2py代码添加了字段验证、JS数据报警器和图像上传):
from gluon.tools import Crud
db=DAL('sqlite://storage.sqlite')
crud=Crud(globals(), db)
db.define_table('person',
Field('name', required=true'),
Field('birthdate', 'datetime'),
Field('address', 'text'),
Field('image', 'upload'))
def index():
db.person.id.represent=lambda id: A('view', _href=URL('show', args=id))
return dict(people=db(db.person).select(),
new=A('new contact', _href=URL('edit')))
def edit():
row=db.person(request.args(0))
return dict(form=crud.update(db.person, row, next='show/[id]')
def show():
row=db.person(request.args(0)) or redirect(URL('index'))
return dict(form=crud.read(db.person, row),
link=A('edit', _href=URL('edit', args=row.id)))发布于 2011-02-24 03:20:47
砂砾。它与您的经验相匹配,并将其本身视为一个快速开发框架。它使用了您熟悉的技术(Spring,Hibernate)。Grails代码是用groovy编写的,Java开发人员应该不难开始使用它。如果您遇到麻烦,您可以回到java。Grails有一组丰富的插件,可以处理非常常见的项,如身份验证、排队等。当部署应用程序时,您可以部署wars/ears。简而言之,Grails符合您的所有标准。
1) Grails减少了配置--它是由“约定而不是配置”驱动的,因此如果您遵循这些约定,代码就会被框架绑定在一起。
2)有许多安全插件,其中一个是基于spring安全的。
3)我不知道你是什么意思,但如果你是我认为你的意思,你可以在你的模型对象上施加约束来验证数据。另外,grails有一个单元/集成测试机器。
4)默认情况下将Grails域对象映射到数据库表。Grails在封面下使用hibernate。您可以在域类中自定义db模式--如果您熟悉hibernate,您会做得很好。
因此,基本上,您可以在一个框架中获得经过验证的java技术的所有好处,这样您就可以更快地运行。
发布于 2011-02-24 03:17:53
如果您正在进行web开发,那么您很可能知道JavaScript。因此,如果您对新框架开放,您可能会看到节点快车。很难克服它的简单性:
var app = express.createServer();
app.get('/', function (req, res) {
res.send('Hello World');
});
app.listen(3000);...and你在3000端口上有一个web服务器,上面写着“Hello”给访问者。
Express是一个面向Node.js的web开发框架。您使用JavaScript编写,您不需要任何像Apache之类的web服务器- Node 是一个web服务器。
https://stackoverflow.com/questions/5099957
复制相似问题