Java EE (Enterprise Edition) - Pooky/java-enterprise-examples GitHub Wiki
Java Enterprise Edition
Java EE is set of standards which was developed by Java Community and the aim is to enable better development of bigger (enterprise application) and also to decouple and split logic of application.
This standards are mainly abstracts. Many ares of this standards is implemented differently, by various companies (vendors).
Main ideas of Java EE
- Containers
- Dependency Injection
- Persistence
- Servlets
- XML Binding
- Web-Services
- Transactions
- CDI
Dependency Injection (DI)
Don't use application to create new instance of class like "new Class()". Dependency Injection delegate this to Container or some other library to inject this instance into variable. Usually you need to configure it and correctly setup annotation for the variables, which need to be setup.
Container or library will after that create the new instance of Class instead of you. It's good if you want to have differend implementation of classes and switch between them.
Web services
- JAX-RS Java API for RESTful Web Services
- JAX-WS Java API for XML Web Services
XML Binding
- JAXB Java Entity to XML translator
Persistence
- Java Persistence
- Hibernate
- HQL = SQL with Hibernate dialect
- Named Queries
- Criteria Quieries
- Hibernate Entity
- DAO = Object which should get data from db
Java security
- Management and authorization - link: https://shiro.apache.org/
- OWASP
- Session management - UNDERTOW
- HTTPS - Wildfly
- CSRF tokens
Java Mapping
Dozer -> DAO and DTO
Transactions
Big thing in java is multi-threading and concurrent access. Multi-threading application can run multidimensionality mullite instructions in same time. That's very nice concept for faster processing but problem is when you access one resource randomly. In worst case you can read some value and modify the value before other thread will read this value.
It can result in data inconsistency, dirty write or dead-lock. To prevent this java containers use transaction management to keep operation in one flow or rollback if whole transaction is not completed.
Version | Name | Released |
---|---|---|
Java EE 9 | J4EE, Eclipse Enterprise for Java | unknown |
Java EE 8 | Java EE 8, JSR 366 (Java Specification Request) | 18 Sep, 2017 |
Java EE 7 | Java EE 7, JSR 342 (Java Specification Request) | 28 May, 2013 |
Java EE 6 | Java EE 6, JSR 316 (Java Specification Request) | 10 Dec, 2009 |