A
A
alexander0072015-01-10 15:44:34
Java
alexander007, 2015-01-10 15:44:34

Which web framework for java to choose?

Good afternoon. Immediately I apologize for the hackneyed and provocative question in the title.
The crux of the matter is as follows. I am just starting to work with the java platform and already at the very beginning I was struck by the variety of technologies and tools. In a word, eyes run wide. I would like to get an overview of technologies for building websites and web applications. I'm not looking for a silver bullet, I think that the tool is selected for the task. It would be desirable to receive the answer what technology for what task approaches better.
For a better understanding, I will consider 3 tasks.
Task number 1. Website business card / online store. To build such a site, I would take django (I have been writing in python for the last 3 years). Which java is best suited for this task? And in general, does it make sense to solve such a problem in java? The tool requirements are as follows:
- Availability of an adequate template engine for generating html with the ability to structure templates (like in djaongo or Jinja2)
- Ability to quickly build an admin panel for the site
- ORM for CRUD operations
- Form validation
- AJAX support
Task number 2. A backend that implements a certain API (REST, SOAP, RPC). To solve this problem in python, I would take flask and sqlalchemy. Which java tool would be better in this case. The requirements for the tool are as follows:
- ORM that allows you to implement more or less interesting aggregations
- Support in the implementation of the API (REST, SOAP, RPC)
Task number 3. Web application with rich (thick) web client. For example, it could be some kind of CRM running on a LAN. To solve this problem in python, I would take flask, sqlalchemy and ExtJS. Do I understand correctly that GWT is good for this in java? What else can be used? Approximate requirements for the tool are as follows:
- ORM that allows you to implement more or less interesting aggregations
- Automation of building a web client
- web sockets (for updating and notification of events from the server)
I would like to get detailed answers. As I understand it, the following frameworks are currently the most popular: spring, GWT and Grails - is this true? What else is worth paying attention to? What are the limitations of these technologies?
Thank you all in advance. I would be grateful if you give a link to a good review and comparison article.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
N
Nikolai Pavlov, 2015-01-12
@alexander007

1. thymeleaf
2. spring mvc
3. GWT is needed to create a thin client, you are confusing. The fat client is swing or javafx.

V
Vladimir Smirnov, 2015-01-13
@bobzer

Not an answer, but a comment to all the answers - got it already with this Spring. Essentially, Spring is a container in which an application is deployed and to which Spring provides various services, mainly: transaction management, web service deployment, Depedency Injection. At the same time, Spring itself usually runs under the control of an external container - an application server. The problem is that modernapplication servers (free - JBoss/WildFly, TomEE) provide the SAME services out of the box. It turns out a container in a container, and try to figure out from which of them you get this or that service. In many cases, resources are simply duplicated - JBoss finds the same beans in jars itself and immediately deploys them without any instructions. Plus, you configure them in Spring and deploy them a second time. And if you specified @Singleton in annotations, how will your System behave?
Spring is a great thing, it was 5 years ago when there was a J 2 specificationEE. Now everything you need, from what he gave, is already in the JEE 6 specifications, and in application servers that implement these specifications. Experienced people say this: if you have a project in Spring, continue to work on Spring, if you create a project from scratch - take JEE 6, forget about Spring. Yes, Spring still has unique wrappers for various services, through which they are still trying to prove their relevance. But, firstly, what Spring gives you can almost always be done in other ways. Secondly, in most real projects, 3-5% of Spring's services are used, and as I said, these services are already in the application servers.
If anything, google "Spring vs JEE 6" before you chill...

A
anyd3v, 2015-01-10
@anyd3v

Look towards spring (mvc, data, rest), you will have enough for sure. As a thymeleaf template engine.
I don't recommend GWT, Grails.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question