We recently posted a story to DZone on the merits of why MyEclipse for Spring (ME4S) is the only Spring IDE that a developer will ever need, what ensued in the comments section became an unexpected debate about the Spring capabilities of IntelliJ IDEA versus ME4S. This post is for our readers considering what IDE is best for their Spring development; we captured the comments so that you can make an informed decision about your Spring development needs.

Let the show begin....

Dxxvi says:

It's $100/year. IntelliJ IDEA $250 for the 1st year, $150 next years. Idea supports not only Spring but hundreds of other things. I haven't used ME4S yet so I wonder if I can do these things with it:

Clicking on any spring bean name leads me to the bean definition.
- Code completion/suggestion in spring xml: for example when I type class="org.springf Idea shows a list of packages starting with springf for me to select.
- For Spring 3, if I write @Value("${A_NAME_IN_PROPERTIES_FILE}") private boolean aNameInPropertiesFile; then when I point the mouse over A_NAME_IN_PROPERTIES_FILE I will see its value and the properties file name where it's declared.
- From Java, Idea gives me an icon for a java class which is a spring bean. Clicking on that icon will lead me to the bean definition in xml files.
- Spring AOP: Idea gives me an icon at this line

nieleyde replied

ME4S is MyEclipse Pro *plus* a bunch of additional Spring-related tools capabilities. So in addition to get the best general-purpose Java IDE, you also get specialized Eclipse editors for each stereotype supported by Spring web applications (@Controller, @Service, @Repository, @Component, Spring Web Flows) and a boat load of Spring code generation. From your domain model (db tables, java beans or JPA entities) you can instantly generate full ready-to-run applications or just the specific application components that you need.

Here's a list of the application types and components that are generated:
1. Spring MVC
2. Spring Web Flow
3. Adobe Flex + Spring
4. GWT + Spring
5. JSF 2.0 + Primefaces + Spring (coming very soon)
6. Spring MVC for iPhone
7. REST (coming very soon too)

IDEA is a good IDE, but it just doesn't have all the functionality of ME4S. Furthermore with the Eclipse ecosystem, there are hundreds and hundreds of available Eclipse plugins that can extend and complement ME4S.

I hope you get a chance to try it out. If you don't have the time, I recommend you check out the ME4S YouTube channel or some of the more recent webinars.

As far as your scenarios, I believe ME4S has equivalent functionality for everything except your second bullet.


Mario Arias replied

IDEA have all this features, including those that you mark as "coming very soon" (minus, Spring MVC for iPhone... but What is that?) and much more like Spring + Hibernate + SQL Integration, Spring Test Framework and Spring WS

nieleyde replied

Mario, I think you are misunderstanding me. ME4S can be used to develop all the application types that I listed, *AND* ME4S can also be used to generate full ready-to-run applications for these technologies.

I just took a look at IDEA again to see if perhaps they've introduced more advanced code generation and Spring editors since the last time I reviewed IDEA. I found several references to how IDEA can be used to develop different types of applications, but I couldn't find anything that references how IDEA can generate fully implemented applications. I also couldn't find any references to any dedicated editors for maintaining Spring stereotypes. I'm not referring to only content-assist (which ME4S also has)....I'm referring to dedicated editors that present the developer with all the configuration options for a given Spring stereotype.

Let me describe one of the simplest scenarios of ME4S generation functionality. Let's say that you want to generated a Spring MVC application from a single database table. (Remember this is intended to be a very simple example). Using ME4S I would use the scaffolding wizard to specify (a) the database table to be used and (b) the desired application type [Spring MVC]. From only that information ME4S will generate a complete application, including:

1. a JPA entity corresponding to domain model
2. a DAO for managing the JPA entity (Spring @Repository)
3. a full set finder methods (JPA named queries) for JPA entity
4. a Service with fully implemented CRUD operations for managing domain model (Spring @Service)
5. a Controller with fully implemented request handlers for supporting web application (Spring @Controller)
6. all the necessary Spring annotations and configuration files for a Spring MVC app,
7. all the necessary JSP pages using Spring Form tag library and JSTL
8. a layout managed user interface using Sitemesh,
9. client-side validation implemented Spring JS with DOJO,
10. CSS for UI styling
11. JUnits for every Service and Controller,
12. SpringSource certified code and configuration files,
13. Hibernate configuration, and
13. all the required Java libraries

This whole process takes less than one minute.

Perhaps you don't want an HTML front-end. Maybe you want an Adobe Flex or GWT front-end. Just re-run the ME4S scaffolding wizard and select Adobe Flex or GWT (or both for that matter) instead of Spring MVC. In a few more minutes you have a full ready-to-run Adobe Flex and GWT application that's integrated with a Spring back-end.

I hope that helps.

Mario Arias replied

OK, We see the development process from a very different mindset.

Actually, I never trust on any code generated by an IDE, and most of the average IntelliJ Users will think the same.

jkennedy@skywaysoftware.com replied

Mario, you should take a look at the code and follow up with us if you have any specific recommendations. Our goal has always been to generate code that that is indistinguishable from hand written code. We completely understand that there have been some "bad" code generators out there, and sympathize with developers who have been turned off to the idea that the IDE can assist with repetitive coding tasks. We hope you will reserve judgment until you review the code in question. We have taken great care to replicate best practices and to deliver clean and consistent code and configuration files.

We also offer the ability to customize the templates that are used in the generation process. We'll look forward to your specific feedback.

Jack Kennedy

mikeezx6r replied

@dxxvi Actually, it's $200/yr. They're offering 50 percent off initially to get some users...

dxxvi replied

I was talking about personal licenses and you were talking about commercial licenses


So there it is, the merits of both IDE as it relates to Spring development. If you'd like to continue the discussion, meet us at this thread on DZone.

In the end, if you wish to try ME4S free for 30 days, go here.

To compare IntelliJ IDEA, try a trial here.

Related Posts

CodeMix – Better with You! Thanks to detailed feedback from our awesome users, our team has been hard at work adding stability, reliability and performance fixes, and enhancements, to CodeMix. Read on for the deets on what’s new in CodeMix over the last month.Editing & ValidationWhen editing TypeScript files, error markers were sometimes not cleared when the error was fi...
A Day with Dani: Eclipse Plugin for Awesome Worksp... DevStyle Rescued My Workspace!As a new developer working in Eclipse, nothing was worse than doing a project and looking at an outdated, plain workspace. It was boring, and took away from the excitement and learning these projects had to offer. This was an IDE I would be using almost every day, so when I learned about the DevStyle plugin for Eclipse...
Angular 5 Authentication: Getting Started In this tutorial, we are going to build an Angular 5 authentication system using Google’s Cloud Firestore. Most of the applications we build require some kind of authentication, and the simplest and fastest way to get started with that is by using the Firestore - a flexible, scalable database for mobile, web and server development. You will learn t...
Set Up and Use a Fake REST API with Angular Often, when developing Angular applications, you do not have the backing REST APIs ready for testing. To avoid having to digress into developing web services, or being blocked, waiting for your back end team to provide them, you can use JSON server to provide a "fake" API. This article will show you how to use Angular IDE and JSON Server to set up ...

Posted on Feb 17th 2011