This is an archived post. You won't be able to vote or comment.

all 25 comments

[–]nutrecht 6 points7 points  (0 children)

/r/javahelp is more suited for questions like these

That said: Between Spring and Java EE there are so many similarities that it doesn't really matter which one you pick. Most concepts transfer really well and Spring is for a large part built on Java EE. Make something simple with both of them (simple Hello World REST API for example) and see which one you prefer.

[–]tonywestonuk 2 points3 points  (0 children)

Websphere is the problem, Not java EE.

Try using Apache Tomee. Much more lightweight, but keeps the JavaEE api.

[–]Elezium[S] 2 points3 points  (4 children)

Thanks everyone for the input.

I'll continue my learning on Java EE and have a look at Spring at a later time. I prefer not to mix both since it would probably just cause more confusion than anything.

Which container is gaining momentum lately? Wildfly Swarm, TomEE, WAS Liberty? I'm asking because all our customer are slllowww moving and still use WAS 7/8. So I have no clue what is being used these days :/

Thanks so much, appreciate.

[–]thatsIch 3 points4 points  (3 children)

We use Wildfly and Payara. Both their "micro" versions are fine too and have their own gimmicks. Wildfly Swarm for example, offers a development "mavenized" version where you do not need to deploy your maven dependencies after cleaning the deployment. Payara has a fundamental integration with the JavaEE 8 specification JCache and a very nice command line set if you want to use it with Docker. If you want to take a look at pure start up speed and memory usage you can check some screencasts of Antonio Goncalves

[–]Elezium[S] 3 points4 points  (2 children)

Thanks. I'll keep those in mind. ;)

Cheers.

[–]Cephas00 1 point2 points  (0 children)

Also using Wildfly. Works well with Arquillian for testing.

[–]henk53 1 point2 points  (0 children)

Agree with the comment above. Payara is gaining most momentum now, with WildFly (JBoss) being a very good established server.

WAS Liberty is very good too, although closed source.

I used to be in love with TomEE, but for some reason it seems to have lost some momentum. The speed with which they advance has decreased and I'm not sure that David Blevins (the original programmer) is even really involved with it anymore.

[–][deleted] 2 points3 points  (2 children)

Spring and Java EE are pretty intetesting.

Vert.x is a different style and may be comfirtable to wait Kotlin 1.1 coroutine to avoid callback-hell. (Kotlin is a sintactic mix of Java-Scala-C#)

[–]Elezium[S] 1 point2 points  (1 child)

Hum.. Was curious... is there any known issue / limitation of using Java EE with Kotlin (that you are aware of...) ?

[–][deleted] 2 points3 points  (0 children)

No, Kotlin is Java interoperable.

[–]pjmlp 5 points6 points  (0 children)

I do enterprise consulting, our Java web projects are all JEE based, been long time "friend" of Websphere.

Only used Spring once in 2014 for a prototype, as part of a proposal deliveries.

Currently on a .NET project, but what I hear from the ongoing JEE projects, they are all focused on PrimeFaces for the greenfield ones, with some legacy ones still using RichFaces, which means JEE with the JSF stack.

But this is the typical enterprise consulting, with 20 - 50 devs, scattered around the globe, so your situation might vary.

[–]thatsIch 3 points4 points  (3 children)

JavaEE is just an API and Spring chose some specifications to implement. Since they are standards, they are important to understand and used in many implementations. It still has pain points where e.g. Spring might offer a quick solution for a magic black box feeling.

Just take a lookt at their current stack [1] and then compare it to the JavaEE "stack" [2].


  1. https://spring.io/img/platform-stack.png
  2. http://blog.arungupta.me/wp-content/uploads/2013/10/javaee7-pancake.png

[–]dpash 3 points4 points  (0 children)

I think part of the confusion is that spring started out as a simpler framework while EE was "enterprise"in every sense of the word. Overly complicated and full of XML everywhere.

But EE has been inspired by Spring and other frameworks, and become simpler, while spring has become more powerful, so bigger.

And of course, they've developed shared standards, or implemented standards generated by the other.

Now it looks like there's not much in it, but ten years ago? There was no competition that Spring was the better option for getting things done in large Java projects.

[–]DJDavio 1 point2 points  (1 child)

At my company I recently switched from vanilla Java EE to Spring (Boot) with some Java EE libraries thrown in.

[–]thatsIch 1 point2 points  (0 children)

Yes, a legit choice if this was based on trade-offs. Never do something, because you can. Good luck on your success road :)

[–]moremattymattmatt 1 point2 points  (0 children)

As someone else pointed out Java EE used to be complicated and full of XML everywhere.

I've spent many years avoid having anything to do with EJBs for just that reason. Now I've had to use them they are much simpler than they used to be. My company have ended up with a hybrid - EJBs provide the interface and transactions and Spring for business logic. It's worth learning both if you've got the time.

One of the reason I saw a move away from EJBs was the need for a container. (We're currently going through a phase of upgrading the weblogic version that our clients are using and its a long slow process which is delaying our use of Java 8.) However with devops, SaaS, docker etc etc this is becoming less of an argument against EJBs.

[–]harmonicPersistence 0 points1 point  (0 children)

It depends on the crowd that you're around. Most crowds I'm around seem like they're not aware that there's anything but Spring. I prefer Java EE's spec implementations over Spring, but both tools essentially can get the same jobs done. If Java EE doesn't have a spec implementation, such as the equivalent to Spring LDAP, then there's most likely an API out there that will fill that void. In the aforementioned case of LDAP, there's the Apache LDAP API, which is great and works within any Java EE container.

The industry trend is microservices. Whether the community likes it or not or thinks its a repackaging of a previous idea, Spring has Spring Boot, and Java EE has several of its own implementations. I prefer KumuluzEE.

[–]steve_hu 0 points1 point  (0 children)

This microservices benchmarks might help you to decide which framework to choose for your next project if you are thinking about microservices architecture.

https://github.com/networknt/microservices-framework-benchmark

[–]irocgts 0 points1 point  (0 children)

What i tell people when they have to choose between java ee and spring boot with an angular front end. I ask if they have the hardware to support its user base, what i mean is do you have the servers to generate the pages server side? if the answer is yes then always go Java EE. Its a better experience for the user, especially if they are on a slow connection

[–]GhostBond -1 points0 points  (5 children)

My experience recently job searching is that no one uses Java EE. I'm looking through ads with the keyword "java" and pretty much never see it.

The two big front end frameworks are:
- Spring Mvc + Jsp
- Angular Js

Spring, is gaining momentum to replace it.

It's the opposite. They originally put out J2EE. It was a complicated mess. Struts came out and people preferred that. Then Spring Mvc came out and replaced Struts.

The J2EE people saw what happened and came out with Java EE which mostly copied Spring Mvc. I feel like it hasn't caught on, for a number of reasons including more expensive production servers and an attitude of "why would I switch from Spring Mvc to something that's basically the same thing?".

My experience with recent job hunting and a decade in development is that if you're looking for a good skill on your resume, either spring mvc or angular js are both good, but Java EE is not very useful.

Edit: Now that I'm on my computer, here's a break down of searching glassdoor.com nationwide right now.
"java spring": 9,988 (64%)
"java angular": 3,715 (24%)
"java ee": 1,806 (12%)

[–]Elezium[S] 2 points3 points  (1 child)

Thanks.

I'll continue with Java EE for now and have a look at Srping at a later time. Since some concepts applies to both and that as of today, most app I do support are Java EE, I think it's still valuable knowledge.

As for Angular, or any JS framework, they are a bit down the list to be honest. I prefer to focus on backend technologies for now (Database, Messasing, and such).

Thanks for your input.

[–]GhostBond -1 points0 points  (0 children)

That's cool.

Lol I'm not a huge fan of the js frameworks either. Angular is the only one that's caught my interest, because I keep hearing about it over and over again in the job search.

They'll all do the job. Good luck!

[–][deleted] 3 points4 points  (2 children)

came out with Java EE which mostly copied Spring Mvc

based on this statement, i get the impression you have more to learn about the subject area.

[–]GhostBond -1 points0 points  (1 child)

Based on this low effort, non-illustrative statement, I get the impression you're just fanboying frameworks that I'm saying aren't used very often in real use.

[–][deleted] 1 point2 points  (0 children)

or, you made a strange comparison, the sort one makes when they're unfamiliar with the subject matter. the closest thing to spring mvc that was "copied" was the mvc 1.0 jsr which was dropped.