Book Image

Kotlin for Enterprise Applications using Java EE

By : Raghavendra Rao K
Book Image

Kotlin for Enterprise Applications using Java EE

By: Raghavendra Rao K

Overview of this book

Kotlin was developed with a view to solving programmers’ difficulties and operational challenges. This book guides you in making Kotlin and Java EE work in unison to build enterprise-grade applications. Together, they can be used to create services of any size with just a few lines of code and let you focus on the business logic. Kotlin for Enterprise Applications using Java EE begins with a brief tour of Kotlin and helps you understand what makes it a popular and reasonable choice of programming language for application development, followed by its incorporation in the Java EE platform. We will then learn how to build applications using the Java Persistence API (JPA) and Enterprise JavaBeans (EJB), as well as develop RESTful web services and MicroServices. As we work our way through the chapters, we’ll use various performance improvement and monitoring tools for your application and see how they optimize real-world applications. At each step along the way, we will see how easy it is to develop enterprise applications in Kotlin. By the end of this book, we will have learned design patterns and how to implement them using Kotlin.
Table of Contents (13 chapters)

Producers

CDI producers comes with the @Produces annotation. It is useful when we need to have complete control over the instantiation of the bean, with some custom code execution, before actually creating the instance.

Let's write an IdentityCreator class. It has a function called createPerson(), which takes inputData as an argument. If the person has preferred choice of language, it is represented by the preferredLanguage attribute. If preferredLanguage is not given in inputData, we will have to create a person instance with defaultPreferredLanguage. This is shown in the following code:

class IdentityCreator {
private lateinit var defaultPreferredLanguage:PreferredLanguage

fun createPerson(inputData: InputData): Person {
val person = Person()
if (inputData.preferredLangauge == null)
person.preferredLangauge = defaultPreferredLanguage
else...