Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
for me I will answer this question based on my experience.
so if I'm gonna start new project I will use the following technologies:
AndroMDA as MDA framework.
Spring (DI, Interceptors, Quartz, ACEGI, ... etc).
Hibernate.
JSF.
off course you might need to play with some helper frameworks/libraries such as:
Velocity.
CAS; if you need SSO.
JXLs; if you need small and easy library for generating Excel files using XLS templates.
Drools; which is Artificial Intelligence a Rule Engine that uses the Rule Based approached to implement an Expert System and is more correctly classified as a Production Rule System.
in terms of testing I will consider the following frameworks:
TestNG; you may want to use JUnit in the part of Unit Testing but TestNG is more than a unite testing framework;
WATIR or SELENIUM as web testing;
Can anybody else suggest other options?
Here are just a few answers to your question that can be found on StackOverflow.
Best Java framework?
What is the most commonly used Java web framework?
Best java mvc framework implementation for web apps
What are the best MVC web frameworks on the market?
What are the best Java social networking frameworks?
Best server-side framework for heavy AJAX Java application
What Web Application Framework for Java is Recommended?
Java Validation Frameworks
Validation Framework in Java
Java 2D Game Frameworks
What are good docking frameworks for Java/Swing?
Which framework should I choose - Seam, Wicket, JSF or GWT?
Java Frameworks War: Spring and Hibernate
Recommended framework for Java Web Services
Java Desktop application framework
Alternate Java GUI Frameworks
What’s the best mock framework for Java?
Java configuration framework
You can do this search yourself via Google
I can't be sure, what I am gonna use in the coming new project. Unless otherwise, I am planning to do RDD, also here and here.
thanks Eddie for Googling hint.
When I asked this question I was biased to Web Application Development. Now I found this can't be answered in single question.
So I guess its better to have one page categorizing the Java Frameworks (DI, Web, ORM) with links in each category pointing to other questions in stackoverflow.
however this may end with something similar to java-source.net
but categorized. so I will use your hint Eddie in my answer below:
ORM (Object Relational Mapping) frameworks:
Hibernate, iBatis, Java EE or other Java ORM tool
What Java ORM do you prefer, and why?
DI / IOC frameworks:
What DI/IoC framework should I learn next?
https://stackoverflow.com/questions/71041/which-single-ioc-di-container-would-you-recommend-using-and-why
Web frameworks:
What is the best java web application framework that goes well with xml+xslt?
Which Java Web Framework fits best with Google Guice?
https://stackoverflow.com/questions/309254/best-java-mvc-framework-implementation-for-web-apps
Which Java web framework best accommodates web designers?
Report engines:
https://stackoverflow.com/questions/238527/what-is-the-best-report-engine-for-java
What is the best free or low-cost Java reporting library (e.g. BIRT, JasperReports, etc.) for making newspaper-like reports
Testing Frameworks:
Which is the best tool for automatic GUI performance testing?
What's the best mock framework for Java?
What's the best mock framework for Java?
GUI libraries:
https://stackoverflow.com/questions/138722/which-gui-library-is-the-best-in-java
Code coverage tools:
https://stackoverflow.com/questions/39329/what-is-your-favourite-code-coverage-tools-free-and-non-free
Build tools:
What Tools Do You Recommend To Auto-Build Your Application?
Available Build Tools (make, etc)?
Static analysis tools:
What code metric(s) convince you that provided code is "crappy"?
Find bugs
if I missed something please let me know to update this answer. (thanks all)
Do not forget some static analysis tools, like for instance Findbugs.
Frameworks are means to an end. What is the project that you are trying to accomplish?
Tons of people use Spring, but for some people some obscure open-source API may save years of coding.
Before you grab the latest and greatest or not - perhaps you should note what you actually need and then find the best match ratehr than just grabbing jar files.
I would also use these tools to build the project and follow the rules.
Maven build system
Nexus repository server
Hudson CI server
PMD, FindBugs
Checkstyle
Jalopy
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I'm an ASP.NET developer, I'm happy with ASP.NET MVC and Entity Framework...
I want to use Java EE in a new web project, but there is a lot of specifications and frameworks (jsf, ejb, hibernate ...),
I'm looking for the best combination of Java EE specification tu use for a big Web Project (I must use HTML5, Javascript, JQuery, Javascript Framework like Telerik Kendo UI, Json, Webservices ...) and I love MVC so I'm looking for the MVC support in Java EE
For now, I decided the deployment server: Debian + Glassfish
I don't care about learning curve, but I do care about stability and performance
You can use Spring Web MVC for following reasons.
Active Community
Great Documentation
Ease of learning
MVC Architecture Supported
Used in the Industry
You probably wanna go with Spring, MVC being only one of the reasons. I can't tell whether it is the best in the Java landscape (maybe it is, I love it), but given how widely used it is you will most likely find someone able to help whenever you run into something you can't figure out by yourself.
Same applies for Maven when it comes to dependency management. Another viable alternative would be Gradle, but Maven is probably used more widely.
I would also suggest keep your project "Mavenized", i.e. buildable without IDE. That does not mean don't use IDE of course, just make sure it is buildable right after pulling the project from the repository, without starting your IDE.
Just yesterday I read this great article that might help you adopt some good habits right from the start: http://www.jamesward.com/2014/12/03/java-doesnt-suck-youre-just-using-it-wrong
In fact there are many amazing Java EE tools and frameworks, I think the best combination will be using:
Spring framework, Hibernate ORM and JSF (precisely Primefaces) because they all have highly active communities, Good documentation with great tutorials.
I have very good experience with Tapestry5 and for the model layer JDBC templates or JPA(Hibernate) which is an ORM tool like Entity Framework.
Tapestry5 is a component based framework and it works nice. Great support for AJAX. They have a quite big community and a lot of components.
You can also use JSF (check primefaces, richfaces) + Spring(or CDI) + model layer
If you want something for rapid development use Vaadin or Liferay.
You can also go with Spring MVC which is also a good choice.
For testing use Selenium tests which are just great.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I read about ServiceStack.NET and really liked it a lot (especially the fact that it is based on a messaging paradigm and implements the Data Transfer Objects pattern).
I would like to know if there is any framework for Java that comes close to what ServiceStack provides for .NET? Alternatively, do you know of any Java framework that can interwork with ServiceStack?
I am especially interested in the below features that ServiceStack.Net provides:
Metadata pages for all registered formats With links to WSDLs, XSDs
Support for JSON/JSONP, XML, JSV, CSV and SOAP on all end-points
And although I am looking for a framework that provides the above features on the JVM, I would also be interested in one of these platforms because I suspect that they could be used as intermediaries for interworking with the JVM world (i.e. the Facade pattern).
Python
Ruby
node.js
Disclaimer: I'm not familiar with http://www.servicestack.net/, however it seems to be a Web Application Framework built around Enterprise Integration Patterns (EIPs).
Apache Camel integrates with a lot of the services you mentioned and is also built around EIPs. A great place to start is #Claus Isben's Camel In Action book.
In case you just want to build a web application, try:
Many Java web applications are built with Spring to great success. It has a lot of the features you're looking for, and I'm sure there is a lot of documentation for the integrations you're looking for.
It seems like you're looking for a fully featured integration framework, but just in case you are looking for a much more lightweight approach, try Jersey, the JAX-RS Reference Implementation. It has WADL support out of the box with the sample application.
You can achive this by using Apache CXF and Camel transport for cxf. http://camel.apache.org/camel-transport-for-cxf.html
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
In the last period, I tried to learn something about the Google cloud technology and I quite liked it.
I made a test project for learning GWT bound to GAE, too. In my opinion, the web toolkit is a nice framework for building a Web 2.0 UI from scratch, for those who always worked with Java, but... I think my team is not ready for that, unfortunately.
So, I have to choose another front-end technology, rather than leave my mates writing thousands-code-lines JSP.
What do you recommend to me? Last year I worked a little with Spring MVC and Struts, but since the project we're going to start is a "green field", I'd like to go for a state of art framework.
Remember:
traditional "page" approach (html views, forms, and so on)
must work on Google App Engine
This link lists all the supported frameworks on GAE. After going through that list I'd either go with Spring MVC or Struts 1.
Here is a CRUD tutorial with sprint MVC to get you started.
If you have to go with GAE I would stick with GWT (if your devs are good they should be willing to learn :) ), or maybe a simple framework like apache click. Otherwise developing something other than simple Servlet/JSP is a pain even if it doesn't look so at the beginning of the project.
Try PLAY (http://www.playframework.org/), watch the video and I think you would be sold.
It supports GAE through a plugin (http://www.playframework.org/modules/gae). It states that it supports GAE 1.4 but we are using the 1.5.3 SDK and it works just fine. You can also use the siena plugin which is a hibernate-like layer for the GAE datastore. You can develop locally (and have the same file-backed datastore and in-memory memcache), once you are done, hit "gae:deploy", enter your email and password and you're done.
Let me recommend you using Spring MVC, but using Thymeleaf [http://www.thymeleaf.org] --of which I'm author-- as a view-layer technology instead of JSPs.
This combination will provide you with the traditional approach you require (HTML views, forms...) and at the same time will allow you to use a more elegant approach to prototyping and developing your HTML interface.
Good luck with your projects.
I would try Jello framework. It is a Java Application Framework optimized for Google App Engine including comprehensive Data Authorization model, a powerful RESTful engine, and out-of-the-box UI views.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am new to Java framework.
I am looking for a good Java framework to help me build a JSP web site.
I googled for Java framework and it returned a few related terms for me:
struts, Cocoon, WebWork.
I have no clue which of them is for beginning learner.
Do I need to download netBean or eclipse to work along with any of these Java Framework? I need an auto-complete tool that helps when typing hundreds of lines of code.
Please advise and help.
Thanks
Edited reason,
I have just found out that netBean has got Struts Java framework, what do you think of it? Is it good for beginning learner?
The Play framework makes it easier to build Web applications with Java. I havn't tried it though, but I feel it's "with" the present day web-dev framework ecosystem. It seems inspired by Rails.
Very much depends on your concrete needs but I'd invest some time into looking at Spring. It is a really great and flexible framework that promotes best practices.
I admit it will be a bit difficult to understand initially, especially if you're a beginner. But if you're willing to learn it's real fun. For using Spring framework you can use any arbitrary IDE, it really doesn't matter, although personally I prefer the Eclipse IDE, in this special case the Edition for Java EE developers.
As Juri said, Spring is worth looking at. For the specifics of web development, take a look at the Spring MVC tutorial.
Spring is pretty good. Struts is another framework with a pretty easier learning curve IMO.
#kwokwai: I have seen your comment on #Juri post.
Spring IDE would be helpful if you plan to choose Spring for your application.
Grails is my favorite.
While it's not Java the language, it's Java the platform. It compiles to Java bytecode and runs on any appserver / servlet engine. And integrates well with existing Java code.
Grails is more than just a web framework, it's a complete web application stack. But you can use only the web part if you like.
Grails really brings speed of development known to e.g. Rails to the Java platform.
During development, you can edit your controllers and services, and just hit reload in the browser, no redeploy needed (as you also can in The Play framework).
Tag libraries are really easy to create. And being able to write Groovy code rather than EL in the views (GSP, Grails' variant of JSP) is really powerful.
I would recommend Apache Wicket, its very easy, no XML-Configuration-OVerhead. Just have a look a the examples on the website.
Play! Framework. This is by far the easiest one to use. Been a user of Apache Turbine (since 2002), Apache Struts, CakePHP, I finally landed on Play!. You can watch a 10 mins video on http://www.playframework.org/ but here I would like to mention some of my gotchas:
Easy, actually too easy to use. Many people's first impression on Play is it makes web dev become fun again on Java
Scalable. Because of the stateless model, the only thing you need to do to scale your 5 page hello world web app into a million vists per day busy site is to increase your box and running more instance of your app. You don't need to change one line of code to reach there.
Performance. Check this to see how Play! outperforms it's competitors when you use it as a standalone http server
Very active community and very good contributors. The questions you post on Play's google group get answered promptly. And you can find many interesting stuff contributed by community at here
You can also take a look at Spring Roo. It allows you work with Spring in a very lightweight fashion. In terms of ease of use this seems on par with Play framework or even better (due to tools support). Spring itself is a very established application framework and you are very likely to work with it during your professional career.
Although I'm spring user, I would encourage you to look at JBoss Seam. This framework is built on top of other powerful technologies, such as JPA, EJB3 and JSF. You will spent some time learning it of course. And keep in mind, that in order to run its applications, you will need java EE server such as JBoss, not an ordinary servlet container like Tomcat (actually you can run Seam on Tomcat, but you will get into some problems). And java EE hosting costs usually ~two times as much as Tomcat hosting.
Here is the comparison of Spring and Seam:
http://www.andygibson.net/articles/seam_spring_comparison
Just google seam vs spring if you want more details.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
At my current job I've been working on making web apps with Java, Tapestry, Hibernate, MSSQL, and Tomcat.
I've got an idea for a little web game I'd like to write. I'd like to know what the SO community would use for something like this.
Should I stick to what I know? I was thinking it would be very beneficial for me to learn different languages and frameworks. Any suggestions?
If its a personal project then take this as an opportunity to learn something new.
Spring Framework using Spring MVC 3.0
I recommend learning something new because even if your idea is a failure, at least you learned some new technology out of it.
I can suggest Grails as it is a modern and easy to use RAD Web-Framework, has a small learning curve and is proven to be scaleable.
It builds upon Spring MVC, Hibernate and other sophisticated frameworks and merges them with the dynamic nature of Groovy (dynamic language for the JVM) into a full-stack webframework. It follows modern principles like CoC (Convention over Configuration) and DRY (Don't repeat yourself). You can deploy the applications straightforward as .war file in tomcat or any other servlet container or applications server.
My recommendation would be to see what you could do with a combination of Google App Engine, Django, and JavaFX.
In doing so, you'd learn some new technologies (App Engine) and languages (Python for Django, JavaFX) while taking advantage of what you already know about web apps and Java.
I'd pick Haxe.
Haxe (pronounced as hex) is an open source programming language
While most other languages are bound to their own platform (Java to the JVM, C# to .Net, ActionScript to the Flash Player), Haxe is a multiplatform language.
It means that you can use Haxe to target the following platforms : Javascript, Flash, NekoVM, PHP, C++, C# and Java
If your thinking about an online game like a RPG or card game I might be selfish and suggest you have a look at Project Darkstar and let us know how you got on. I've been trying to get started with it and cannot get it up running in my environment.
PHP and MySQL is an easy place to start for web apps. Your ISP will support it and there are tons of tutorials on the web.
Once you have got the hang of it, take a look at MVC architecture. It's a way of structuring web apps.
Personally I'd then recommend looking at CodeIgniter.
However a game is a different matter, maybe try Flash?
If you want to improve your skills push what you already know. If you want to learn new languages and ways of doing things, then look at alternative technologies and stacks.
It all depends on what your goals are...