In my new workplace, we have several web projects built with Java EE. I had not done any Java programming before starting here. Two months in, I am able to contribute to maintenance of said projects and develop new features based on the existing code, but I lack knowledge to meaningfully improve the design of the application (meaning architecture / code patterns). There is only one other person who knows more than I do about Java EE (he built the things), but he does not have too much knowledge about the more advanced aspects of Java EE application design either.
So could you recommend any good resources for learning Java EE? Especially about:
- load balancing / HA,
- multithreading,
- developing an API for external consumption (not entirely Java EE related).
We are not using the Spring framework.
Any recommendation about good design patterns in Java EE is also very appreciated.
This might be a hard pill to swallow...but it's going to be highly dependent on your app server.<p>Java EE is just a set of annotations with several different vendors implementing the standard in an app container.<p>I would look at the docs for whatever your employer is using.<p>A lot of it comes down to knowing some basic fundamentals about web development. For example: Load balancing/HA can be done in several different ways not tied to Java EE, the same is true of any of the things you're mentioning.<p>Largely, HA can be done with your app server. An API is just REST which means the jaxrs implementation.<p>Multi threading dynamics are typically app server specific. Generally "let your container do it" is the right answer though.<p>Source: Been doing java since spring 2.0 as well as dealing with app servers ranging from glassfish to jboss (now wildfly).
I haven't used it myself because I'm mostly dealing with Spring applications but from a cursory look this seems like good place to start: <a href="https://javaee.github.io/tutorial/" rel="nofollow">https://javaee.github.io/tutorial/</a>