Java EE 7 has established itself as the preeminent Java stack for web and back-end developers. This code-focused course shows how to build a complete application covering most of the Java EE 7 specifications. You'll learn about how the Java EE platform has progressed through its history to the modern platform it is today, the foundations of building a web application in Java EE, and how to interoperate Java EE applications with external services. You'll also learn about architectural best practices when building a Java EE application. By the end of this course, you'll have a solid foundational for building Java EE applications of your own.
Course Overview Hi everyone. My name is Antonio Goncalves. Welcome to my course Java EE 7 Fundamentals. I am an independent developer, a book author, a recognized Java Champion, and I like to talk at international conferences about Java EE. So you've heard of Java EE, you might have already used it a bit, but you want to dig into it. This course is for you. In this course, you will learn most of the Java EE 7 specifications, what they are, what they do, and why you might need them. Some of the major topics that I will cover include understanding Java EE, what is a container, what is a component, a service, metadata, how do we package applications. Then you'll learn about common specifications: how to inject components, how to intersect a call, and how to validate data. Then the business tier specifications: what is persistence, what is mapping, how to query data, and, of course, how to handle transactions or batch processing. On top of that, you will see the web tier specifications: servlets, web pages, and web sockets. To communicate with external services, Java EE has a few interoperability specifications, XML and JSON processing for a start, but also REST and messaging. Finally, you will put all these pieces together and learn how to build a web application. By the end of this course, you'll have a very good understanding about all the pieces that make Java EE 7. Before beginning the course, you should be familiar with the Java programming language and have some notions on how web applications are built. Injection, validation, persistence, REST, messaging. Sounds like this course covers lots of technologies. But don't be scared. This course addresses complex topics in a very friendly way. I hope you'll join me on this journey to learn Java EE with the Java EE 7 Fundamentals course at Pluralsight.
Understanding Java EE Hi. Welcome back to the Java EE 7 Fundamentals course. My name is Antonio Goncalves, and in this second module I will be showing you what Java EE really is. In the previous module, we've had a demo of the CD-BookStore web application that we will be using throughout this course. This web application is quite complex because it uses several different technologies. Through the example of database access, we've seen that Java EE simplifies development compared with Java SE thanks to the Java EE programming model based on metadata and convention over configuration. In this module, I will explain what an enterprise application is, and how Java EE can help us in developing such applications. I'll describe the internal architecture of Java EE, the role of the container, and the components it manages. I will also describe all the Java EE services and what they are used for. I'll then explain why Java EE is said to be standard, the role of the JCP, and I will give you a list of software that actually implement Java EE. I'll wrap up by presenting all the specifications Java EE is made of.
Creating a Common Application Tier Hi, welcome back to the Java EE 7 Fundamentals course. My name is Antonio Goncalves, and in this third module, I'll concentrate on the common tier specifications of Java EE. In the previous module, I've concentrated in presenting Java Enterprise Edition. You now know that Java EE is all about components with metadata that are managed by a container. This container gives a set of services, each one specified in a JSR, or specification. This module will focus on specifications that can be used in any of the tiers of our enterprise application. These specifications give services to components found in the web, enterprise, or interoperability tier. These services are injection, interception, and validation. I will leave security and concurrency in this course, and we'll concentrate on CDI, interceptor, and bean validation.
Addressing Business Concerns Hi. Welcome back to the Java EE 7 Fundamentals course. My name is Antonio Goncalves, and in this fourth module I'll focus on the business tier specifications of Java EE. In the previous module, we've seen the three main common specifications, context & dependency injection, for injecting components, resources, and managing state; interceptors, for all the low-level method invocation interception; and Bean Validation for validating data. We started with these common specifications because we will see them in most of the application's layers. Now, in this module, I will focus on the business tier specifications. The business tier orchestrates API calls, service invocations, return values, any of the central points in an enterprise application. In Java EE, it's where we find the specifications that deal with transactions, persistence, and batch processing, respectively called JTA, JPA, and JBatch.
Implementing Web Applications Hi. Welcome back to the Java EE 7 Fundamentals course. My name is Antonio Goncalves, and in this fifth module I'll be showing the Java EE specification around the web tier. In the previous module, we've seen what the business tier was all about. It's mainly the place where services orchestrate the business interaction with other services, persist and map data in a transactional manner, and process a huge amount of data using batch processing. We live in a world where internet is our daily tool, so we need to develop a web tier which interacts with this business tier. In this module, I'll start by explaining what Servlets are, and why they are the most commonly used Java EE component in web development. Then, for the user interface we will see how to develop web pages using graphical components and expression language. In terms of specification, we'll use JSf or JavaServer Faces. When a dual communication channel is needed, we can use Web Sockets. Java EE was created in the late 90s with the web in mind, so all of these specifications are very mature, and heavily used in the industry. Let's start with Servlets.
Interoperating with External Services Hi. Welcome back to the Java EE 7 Fundamentals course. My name is Antonio Goncalves, and in this sixth module I'll focus on the Java EE specification that makes interoperability possible. In the previous module, we've seen the Java EE specification that made the web tier, Servlets for HTTP requests and HTTP response process, JavaServer Faces for creating rich web applications, and WebSockets for bidirectional communication between web clients and web servers. This module will focus on the interoperability tier of our enterprise application. The role of this layer is to interact with external and heterogeneous systems. These interactions often use JSON or XML as data format. Notice that JSON is defined in Java EE, and XML in Java SE. As for the components able to exchange data with external systems, we have REST web services, asynchronous messaging, SOAP web services, being able to send and receive emails, and connectors which allow any Java component to connect with legacy systems. I will leave SOAP, email, and connectors, and we'll concentrate on JSON-P, or JSON processing, JAX-RS, JMS, and for XML we'll cover JAX-B for binding and JAX-P for processing XML.
Putting It All Together Hi. Welcome back to the Java EE 7 Fundamentals course. My name is Antonio Goncalves, and in this last module I'll be demonstrating the flexibility of Java EE when it comes to build an enterprise application. The previous module focused on the interoperability tier and presented the related specifications, XML and JSON processing and binding for data format exchange, JAX-RS for implementing RESTful web services, and JMS for sending and receiving asynchronous messages. I'll wrap up this course with this last module by giving a quick recap of the Java EE services. I'll put these services back into the tier where they belong, and at the same time show you the modularity and flexibility of Java EE. I'll end up this module by giving you a few external references so you can learn more about Java EE.