LEADER 00000nam a22004693i 4500 
001    EBC5371685 
003    MiAaPQ 
005    20200713055457.0 
006    m     o  d |       
007    cr cnu|||||||| 
008    200713s2018    xx      o     ||||0 eng d 
020    9781788296472|q(electronic bk.) 
020    |z9781788296250 
035    (MiAaPQ)EBC5371685 
035    (Au-PeEL)EBL5371685 
035    (CaPaEBR)ebr11551890 
035    (OCoLC)1034585120 
040    MiAaPQ|beng|erda|epn|cMiAaPQ|dMiAaPQ 
050  4 QA76.73.J38 .P384 2018 
082 0  005.133 
100 1  Patel, Nilang 
245 10 Java 9 Dependency Injection :|bWrite Loosely Coupled Code 
       with Spring 5 and Guice 
250    1st ed 
264  1 Birmingham :|bPackt Publishing, Limited,|c2018 
264  4 |c©2018 
300    1 online resource (240 pages) 
336    text|btxt|2rdacontent 
337    computer|bc|2rdamedia 
338    online resource|bcr|2rdacarrier 
505 0  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 
505 8  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 
505 8  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 
520    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 
588    Description based on publisher supplied metadata and other
       sources 
590    Electronic reproduction. Ann Arbor, Michigan : ProQuest 
       Ebook Central, 2020. Available via World Wide Web. Access 
       may be limited to ProQuest Ebook Central affiliated 
       libraries 
650  0 Java (Computer program language) 
650  0 Application software-Development 
655  4 Electronic books 
700 1  Patel, Krunal 
776 08 |iPrint version:|aPatel, Nilang|tJava 9 Dependency 
       Injection : Write Loosely Coupled Code with Spring 5 and 
       Guice|dBirmingham : Packt Publishing, Limited,c2018
       |z9781788296250 
856 40 |uhttps://ebookcentral.proquest.com/lib/sinciatw/
       detail.action?docID=5371685|zClick to View