Record:   Prev Next
Author Patel, Nilang
Title Java 9 Dependency Injection : Write Loosely Coupled Code with Spring 5 and Guice
Imprint Birmingham : Packt Publishing, Limited, 2018
©2018
book jacket
Edition 1st ed
Descript 1 online resource (240 pages)
text txt rdacontent
computer c rdamedia
online resource cr rdacarrier
Note Cover -- Title Page -- Copyright and Credits -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Why Dependency Injection? -- Design patterns -- Dependency Inversion Principle -- Inversion of Control -- Implementing DIP through IoC -- Inverting the interface -- Inverting object creation -- Different ways to invert object creation -- Inversion of object creation through the factory pattern -- Inversion of object creation through service locator -- Dependency injection -- Dependency injection types -- Constructor injection -- Setter injection -- Interface injection -- IoC containers -- Summary -- Chapter 2: Dependency Injection in Java 9 -- Java 9 introduction -- Key features -- Java Platform Module System -- JShell (REPL) - The Java Shell -- JLink - Module Linker -- Multi-release JAR files -- Stream API enhancements -- Stack-walking API -- Immutable collections with convenient factory methods -- HTTP/2.0 support -- Modular Framework in Java 9 -- What is modularity? -- Java Platform Module System -- The need for a Java modular system -- Modular JDK -- What is a module? -- Structure of a module -- Module Descriptor (module-info.java) -- Module types -- Dependency Injection using the Java 9 Modular Framework -- Modules with Service Loader -- Service (API) module -- Service provider (Implementation) module -- Service client application -- Writing modular code using a command-line interface -- Defining dependency between modules -- Compiling and running modules -- Summary -- Chapter 3: Dependency Injection with Spring -- A brief introduction to Spring framework -- Spring framework architecture -- Core container layer -- Data access/integration layer -- Spring web layer -- Spring test -- Miscellaneous -- Bean management in Spring container -- Spring IoC container -- Configuration -- Containers in action
Dependency Injection (DI) in Spring -- Constructor-based DI -- Setter-based DI -- Spring DI with the factory method -- Static factory method -- Instance (non-static) factory method -- Auto-wiring in Spring -- Auto-wiring by name -- Auto-wiring by type -- Auto-wiring by constructor -- Annotation-based DI -- DI through XML configuration -- Defining annotation -- Activating annotation-based configuration -- Defining a Java class as with annotation -- Annotation with the factory method -- DI with Java configuration -- Summary -- Chapter 4: Dependency Injection with Google Guice -- A brief introduction to the Google Guice framework -- Guice setup -- Dependency injection and JSR-330 -- Example of simple DI -- Basic injection in Guice -- Guice API and Phases -- Start up phase -- Module interface -- The AbstractModule class -- Binder -- Injector -- Guice -- Provider -- Runtime phase -- Guice annotations -- Inject -- ProvidedBy -- ImplementedBy -- @Named -- Binding in Guice -- Linked bindings -- Instance bindings -- Untargeted bindings -- Constructor bindings -- Built-in bindings -- Just-in-time Bindings -- Binding annotations -- Guice injection -- Constructor Injection -- Method injection -- Field injection -- Optional injection -- Static injection -- Summary -- Chapter 5: Scopes -- Introduction to bean scopes in Spring -- Bean definition -- Spring scopes -- Singleton scope -- Prototype scope -- Request scope -- Session scope -- Application scope -- Global session scope -- websocket scope -- How to define a bean scope -- XML metadata configuration -- Using the singleton scope -- Using the prototype scope -- Java configuration using annotations -- Singleton scope with annotation -- Prototype scope with annotation -- Dependency injection and the bean scope -- How to choose a bean scope -- Scopes in Google Guice -- Default scope -- Singleton scope
Eager singletons -- Summary -- Chapter 6: Aspect-Oriented Programming and Interceptors -- AOP introduction -- Spring AOP -- XML(schema)-based Spring AOP -- Declaring aspect -- Declaring a point-cut -- Point-cut designator -- Patterns -- Declaring Advice (interceptor) -- Implementing before advice -- Implementing after advice -- Implementing around advice -- Implementing after returning advice -- Implementing AfterThrowing advice -- @AspectJ annotation-based Spring AOP -- Declaring aspect -- Declaring point-cut -- Declaring Advice -- Declaring an advisor -- Choosing AOP frameworks and style of configuration -- Spring AOP versus AspectJ language -- XML versus @AspectJ-style annotation for Spring AOP -- Summary -- Chapter 7: IoC Patterns and Best Practices -- Various patterns to achieve IoC -- The factory method pattern -- Defining the product (abstract type) and its concrete implementation -- Defining the factory method (creator interface) and its concrete implementation -- The service locator pattern -- The template method pattern -- The strategy pattern -- Configuration styles -- File-based (XML) versus code-based configuration -- Injection using the setter method versus the constructor -- Constructor-based DI -- Setter-based DI -- Circular dependency -- Problems of circular dependency -- Causes and solutions -- The single responsibility principle -- Deferring the setting of a dependency from constructor to setter -- Relocation of classes and packages -- Circular dependency in the Spring framework -- Using setter/field injection over constructor injection -- Using the @Lazy annotation -- Best practices and anti-patterns -- What to inject - the container itself or just dependencies? -- Excessive injection -- Achieving IoC in the absence of a container -- Summary -- Other Books You May Enjoy -- Index
Dependency Injection (DI) is a design pattern that allows us to remove the hard-coded dependencies and make our application loosely coupled, extendable, and maintainable. This book will be your one stop guide to write loosely coupled code using the latest features of Java 9 with frameworks such as Spring 5 and Google Guice
Description based on publisher supplied metadata and other sources
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2020. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries
Link Print version: Patel, Nilang Java 9 Dependency Injection : Write Loosely Coupled Code with Spring 5 and Guice Birmingham : Packt Publishing, Limited,c2018 9781788296250
Subject Java (Computer program language)
Application software-Development
Electronic books
Alt Author Patel, Krunal
Record:   Prev Next