舉報

會員
Java EE 8 Design Patterns and Best Practices
PatternsareessentialdesigntoolsforJavadevelopers.JavaEEDesignPatternsandBestPracticeshelpsdevelopersattainbettercodequalityandprogresstohigherlevelsofarchitecturalcreativitybyexaminingthepurposeofeachavailablepatternanddemonstratingitsimplementationwithvariouscodeexamples.ThisbookwilltakeyouthroughanumberofpatternsandtheirJavaEE-specificimplementations.Inthebeginning,youwilllearnthefoundationfor,andimportanceof,designpatternsinJavaEE,andthenwillmoveontoimplementvariouspatternsonthepresentationtier,businesstier,andintegrationtier.Further,youwillexplorethepatternsinvolvedinAspect-OrientedProgramming(AOP)andtakeacloserlookatreactivepatterns.Movingon,youwillbeintroducedtomodernarchitecturalpatternsinvolvedincomposingmicroservicesandcloud-nativeapplications.Youwillgetacquaintedwithsecuritypatternsandoperationalpatternsinvolvedinscalingandmonitoring,alongwithsomepatternsinvolvedindeployment.Bytheendofthebook,youwillbeabletoefficientlyaddresscommonproblemsfacedwhendevelopingapplicationsandwillbecomfortableworkingonscalableandmaintainableprojectsofanysize.
最新章節(jié)
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Summary
- Future work
- Community
- Why should we use the MicroProfile project?
品牌:中圖公司
上架時間:2021-07-23 15:47:18
出版社:Packt Publishing
本書數(shù)字版權(quán)由中圖公司提供,并由其授權(quán)上海閱文信息技術(shù)有限公司制作發(fā)行
- Leave a review - let other readers know what you think 更新時間:2021-07-23 16:55:40
- Other Books You May Enjoy
- Summary
- Future work
- Community
- Why should we use the MicroProfile project?
- JSON-P 1.1
- JSON-B 1.0
- JAX-RS 2.1
- Common annotations 1.3
- CDI 2.0
- Eclipse MicroProfile REST Client 1.1
- Eclipse MicroProfile OpenTracing 1.1
- Eclipse MicroProfile OpenAPI 1.0
- Eclipse MicroProfile Metrics 1.1
- Eclipse MicroProfile JWT authentication 1.1
- Eclipse MicroProfile Health Check 1.0
- Eclipse MicroProfile Fault Tolerance 1.1
- Eclipse MicroProfile Config 1.3
- Explaining the Eclipse MicroProfile project approach
- MicroProfile
- Summary
- When to use the external configuration store pattern
- Explaining the external configuration store pattern
- When to use the health endpoint monitoring pattern
- Explaining the health endpoint monitoring pattern
- When to use the ambassador pattern
- The ambassador pattern
- Explaining the concept of management and monitoring patterns
- When to use the sharding pattern
- Explaining the sharding pattern
- When to use the materialized view pattern
- Rebuilding the materialized view
- The materialized view pattern
- Explaining the index table pattern
- Promoting auditing
- Promoting scalability
- Promoting decoupling
- Promoting performance
- Understanding the event of event sourcing
- The event sourcing pattern
- When to use the CQRS pattern
- The CQRS pattern
- Local (in-memory) caching
- Consistency
- Priming the cache
- Evicting data
- The lifetime of cached data
- When to use the cache-aside pattern
- The cache-aside pattern
- Explaining the concept of performance and scalability patterns
- Explaining the concept of operational patterns
- Operational Patterns
- Summary
- Explaining the concept of continuous deployment
- Evaluating the impact of a new version
- Deploying the new version
- Defining the servers to receive a new version
- Defining a group of end users
- Explaining the concept of A/B testing
- Deploying the application to the remaining server
- Deploying the application to a group of servers
- Defining the group of servers to receive the first deployment
- Explaining the concept of blue/green deployment
- Deploying the application to remaining servers
- Testing the application and verifying whether it satisfies our criteria
- Deploying the application to canary servers
- Defining the canary servers
- Explaining the concept of canary deployment
- Explaining the concept of deployment patterns
- Deployment Patterns
- Summary
- Implementing the JAX-RS resource
- Implementing the CDI interceptor
- Implementing the authentication interceptor
- Explaining the authentication interceptor
- Implementing the HelloWordServlet class
- Implementing the HelloWorld class
- Implementing the web.xml file
- Implementing the authentication mechanism
- When to use the deployment descriptor annotation or programmatic configuration
- Explaining mutual authentication
- Explaining client authentication
- Explaining digest authentication
- Explaining form authentication
- Explaining basic authentication
- Explaining the authentication mechanism
- Implementing the App1 and App2 classes
- Implementing the AuthenticationResource class
- Implementing the single-sign-on pattern
- Explaining the concept of the single-sign-on pattern
- Explaining the concept of security patterns
- Security Patterns
- Summary
- The circuit-breaker mechanism
- The circuit-breaker pattern
- Config server
- The service-registry pattern
- The API Gateway
- Admin processes
- Logs
- Dev/prod parity
- Disposability
- Concurrency
- Port-binding
- Processes
- Build release run
- Backing services
- Config
- Dependencies
- Codebase
- Twelve-factor
- Abstraction
- Composite application (microservices)
- Explaining the cloud design patterns
- Explaining the goals of the cloud-native application
- Explaining the concept of cloud-native applications
- Cloud-Native Application Patterns
- Summary
- Implementing microservices
- Asynchronous pattern
- Branch pattern
- Chained pattern
- Proxy pattern
- Aggregator pattern
- Microservices architecture patterns
- Advantages and drawbacks of a microservices-based application
- Establishing a hexagonal model for the application
- Taking care of the process of extracting application modules that are candidates for microservices
- Identifying microservices
- How to decompose an application into microservices
- Explaining when to use microservices architecture
- Decentralized data
- Evolutionary systems
- Fault tolerance
- Single responsibility principle
- Decentralized governance of libraries and APIs
- Simpler and smarter processing
- Product focus
- Multitask teams
- The application is decomposed into smaller components
- Explaining how microservices architecture works
- Microservices are not a silver bullet
- What microservices actually are
- The scale cube
- Difficulty using new frameworks and technologies
- Low reliability
- Inefficient continuous deployment
- Long application startup time
- Difficulty in implementing new features and fixing bugs
- Inside a monolithic application
- Explaining microservices patterns
- Microservice Patterns
- Summary
- Implementing the client API
- Implementing the FileUploadResource class
- Implementing the EJBs
- Implementing an asynchronous REST service
- Explaining the concept of an asynchronous REST service
- Calling an asynchronous EJB method to save a ZIP
- Calling an asynchronous EJB method to save a JPG
- Calling an asynchronous EJB method to save a PDF
- Implementing the FileUploadResource class
- Implementing EJBs
- Implementing an asynchronous EJB method
- Difference between an asynchronous EJB method and an event in CDI
- Explaining the concept of an asynchronous EJB method
- Implementing observers
- The FIleUploadResource class
- Qualifier to select the ZipHandler observer to react to an event
- Qualifier to select the PdfHandler observer to react to an event
- Qualifier to select the JpgHandler observer to react to an event
- Bean sent on the event
- Implementing the FileUploadResource class
- Implementing an event in CDI
- Explaining the concept of an event in CDI
- Reactive Patterns
- Summary
- Decorator implementation
- The decorator in a JEE scenario
- The decorator pattern
- Decorator
- CDI interceptor implementation
- Intercepting life cycle callback events
- Interceptor class and multiple method interceptors
- Intercepting method invocation
- EJB interceptor implementation
- Interceptors in the JEE platform
- Loose coupling
- Managed beans in CDI
- The bean
- A brief word about CDI and beans
- AOP in JEE scenario – the interceptor
- Compile-time versus run-time AOP
- Aspect-oriented programming
- Aspect-Oriented Programming and Design Patterns
- Summary
- Implementing asynchronous events – producers and observers
- Implementing the EJB asynchronous methods
- Implementing sending and receiving messages with JMS
- Implementing the service-activator pattern
- Asynchronous events – producers and observers
- EJB asynchronous methods
- Java Message Service (JMS)
- Explaining the concept of the service-activator pattern
- Implementing the EmployeeBusiness class
- Implementing the Transaction class
- Implementing the TransactionFactory class
- Implementing the StageManager interface
- Implementing the EmployeeStoreManager class
- Implementing the PersistenceManager class
- Implementing the PersistenceManagerFactory class
- Implementing the domain-store pattern
- Explaining the concept of the domain-store pattern
- Implementing DAO
- Implementing the entity with JPA
- Implementing the data-access object pattern
- Explaining the concept of the data-access object pattern
- Explaining the concept of the integration tier
- Integration Patterns
- Summary
- Implementing the business-object pattern
- Benefits of business-object pattern usage
- Motivation for using the business-object pattern
- Applications with complex business rules
- Explaining the business-object pattern
- Implementing the Session Fa?ade pattern
- The classic Session Fa?ade pattern scenario
- Implementing the Session Fa?ade pattern in JEE
- Benefits of Session Fa?ade
- Explaining the Session Fa?ade pattern
- Business Delegate – obsolete or not
- The benefits of the Business Delegate pattern
- The classic Business Delegate pattern scenario
- Tiers
- Layers
- Client tier presentation tier and business tier
- Explaining the Business Delegate pattern
- Understanding the business tier
- Business Patterns
- Summary
- The difference between the application controller and front controller patterns
- Implementing commands
- Implementing DownloadApplicationController
- Implementing DownloadFrontController
- The application controller pattern
- Implementing the commands
- Implementing FrontController
- Explaining the FrontController pattern
- Deciding filter mapping
- Implementing LogBrowserFilter
- Implementing LogAccessFilter
- Implementing the intercepting filter pattern using Java EE 8
- Explaining intercepting filter pattern
- Explaining the presentation tier
- Presentation Patterns
- Summary
- Defining the difference between design patterns and enterprise patterns
- Explaining enterprise patterns
- Explaining Proxy
- Explaining Iterator
- Explaining Facade
- Explaining Abstract Factory
- Explaining Singleton
- Understanding the basic design patterns of the Java world
- Understanding the advantages of design patterns
- The catalog of Gang of Four design patterns
- Explaining the Gang of Four design patterns
- Explaining design patterns
- Introduction to Design Patterns
- Reviews
- Get in touch
- Conventions used
- Download the color images
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewer
- About the authors
- Contributors
- PacktPub.com
- Why subscribe?
- Packt Upsell
- Dedication
- Java EE 8 Design Patterns and Best Practices
- Copyright and Credits
- Title Page
- 封面
- 封面
- Title Page
- Copyright and Credits
- Java EE 8 Design Patterns and Best Practices
- Dedication
- Packt Upsell
- Why subscribe?
- PacktPub.com
- Contributors
- About the authors
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Introduction to Design Patterns
- Explaining design patterns
- Explaining the Gang of Four design patterns
- The catalog of Gang of Four design patterns
- Understanding the advantages of design patterns
- Understanding the basic design patterns of the Java world
- Explaining Singleton
- Explaining Abstract Factory
- Explaining Facade
- Explaining Iterator
- Explaining Proxy
- Explaining enterprise patterns
- Defining the difference between design patterns and enterprise patterns
- Summary
- Presentation Patterns
- Explaining the presentation tier
- Explaining intercepting filter pattern
- Implementing the intercepting filter pattern using Java EE 8
- Implementing LogAccessFilter
- Implementing LogBrowserFilter
- Deciding filter mapping
- Explaining the FrontController pattern
- Implementing FrontController
- Implementing the commands
- The application controller pattern
- Implementing DownloadFrontController
- Implementing DownloadApplicationController
- Implementing commands
- The difference between the application controller and front controller patterns
- Summary
- Business Patterns
- Understanding the business tier
- Explaining the Business Delegate pattern
- Client tier presentation tier and business tier
- Layers
- Tiers
- The classic Business Delegate pattern scenario
- The benefits of the Business Delegate pattern
- Business Delegate – obsolete or not
- Explaining the Session Fa?ade pattern
- Benefits of Session Fa?ade
- Implementing the Session Fa?ade pattern in JEE
- The classic Session Fa?ade pattern scenario
- Implementing the Session Fa?ade pattern
- Explaining the business-object pattern
- Applications with complex business rules
- Motivation for using the business-object pattern
- Benefits of business-object pattern usage
- Implementing the business-object pattern
- Summary
- Integration Patterns
- Explaining the concept of the integration tier
- Explaining the concept of the data-access object pattern
- Implementing the data-access object pattern
- Implementing the entity with JPA
- Implementing DAO
- Explaining the concept of the domain-store pattern
- Implementing the domain-store pattern
- Implementing the PersistenceManagerFactory class
- Implementing the PersistenceManager class
- Implementing the EmployeeStoreManager class
- Implementing the StageManager interface
- Implementing the TransactionFactory class
- Implementing the Transaction class
- Implementing the EmployeeBusiness class
- Explaining the concept of the service-activator pattern
- Java Message Service (JMS)
- EJB asynchronous methods
- Asynchronous events – producers and observers
- Implementing the service-activator pattern
- Implementing sending and receiving messages with JMS
- Implementing the EJB asynchronous methods
- Implementing asynchronous events – producers and observers
- Summary
- Aspect-Oriented Programming and Design Patterns
- Aspect-oriented programming
- Compile-time versus run-time AOP
- AOP in JEE scenario – the interceptor
- A brief word about CDI and beans
- The bean
- Managed beans in CDI
- Loose coupling
- Interceptors in the JEE platform
- EJB interceptor implementation
- Intercepting method invocation
- Interceptor class and multiple method interceptors
- Intercepting life cycle callback events
- CDI interceptor implementation
- Decorator
- The decorator pattern
- The decorator in a JEE scenario
- Decorator implementation
- Summary
- Reactive Patterns
- Explaining the concept of an event in CDI
- Implementing an event in CDI
- Implementing the FileUploadResource class
- Bean sent on the event
- Qualifier to select the JpgHandler observer to react to an event
- Qualifier to select the PdfHandler observer to react to an event
- Qualifier to select the ZipHandler observer to react to an event
- The FIleUploadResource class
- Implementing observers
- Explaining the concept of an asynchronous EJB method
- Difference between an asynchronous EJB method and an event in CDI
- Implementing an asynchronous EJB method
- Implementing EJBs
- Implementing the FileUploadResource class
- Calling an asynchronous EJB method to save a PDF
- Calling an asynchronous EJB method to save a JPG
- Calling an asynchronous EJB method to save a ZIP
- Explaining the concept of an asynchronous REST service
- Implementing an asynchronous REST service
- Implementing the EJBs
- Implementing the FileUploadResource class
- Implementing the client API
- Summary
- Microservice Patterns
- Explaining microservices patterns
- Inside a monolithic application
- Difficulty in implementing new features and fixing bugs
- Long application startup time
- Inefficient continuous deployment
- Low reliability
- Difficulty using new frameworks and technologies
- The scale cube
- What microservices actually are
- Microservices are not a silver bullet
- Explaining how microservices architecture works
- The application is decomposed into smaller components
- Multitask teams
- Product focus
- Simpler and smarter processing
- Decentralized governance of libraries and APIs
- Single responsibility principle
- Fault tolerance
- Evolutionary systems
- Decentralized data
- Explaining when to use microservices architecture
- How to decompose an application into microservices
- Identifying microservices
- Taking care of the process of extracting application modules that are candidates for microservices
- Establishing a hexagonal model for the application
- Advantages and drawbacks of a microservices-based application
- Microservices architecture patterns
- Aggregator pattern
- Proxy pattern
- Chained pattern
- Branch pattern
- Asynchronous pattern
- Implementing microservices
- Summary
- Cloud-Native Application Patterns
- Explaining the concept of cloud-native applications
- Explaining the goals of the cloud-native application
- Explaining the cloud design patterns
- Composite application (microservices)
- Abstraction
- Twelve-factor
- Codebase
- Dependencies
- Config
- Backing services
- Build release run
- Processes
- Port-binding
- Concurrency
- Disposability
- Dev/prod parity
- Logs
- Admin processes
- The API Gateway
- The service-registry pattern
- Config server
- The circuit-breaker pattern
- The circuit-breaker mechanism
- Summary
- Security Patterns
- Explaining the concept of security patterns
- Explaining the concept of the single-sign-on pattern
- Implementing the single-sign-on pattern
- Implementing the AuthenticationResource class
- Implementing the App1 and App2 classes
- Explaining the authentication mechanism
- Explaining basic authentication
- Explaining form authentication
- Explaining digest authentication
- Explaining client authentication
- Explaining mutual authentication
- When to use the deployment descriptor annotation or programmatic configuration
- Implementing the authentication mechanism
- Implementing the web.xml file
- Implementing the HelloWorld class
- Implementing the HelloWordServlet class
- Explaining the authentication interceptor
- Implementing the authentication interceptor
- Implementing the CDI interceptor
- Implementing the JAX-RS resource
- Summary
- Deployment Patterns
- Explaining the concept of deployment patterns
- Explaining the concept of canary deployment
- Defining the canary servers
- Deploying the application to canary servers
- Testing the application and verifying whether it satisfies our criteria
- Deploying the application to remaining servers
- Explaining the concept of blue/green deployment
- Defining the group of servers to receive the first deployment
- Deploying the application to a group of servers
- Deploying the application to the remaining server
- Explaining the concept of A/B testing
- Defining a group of end users
- Defining the servers to receive a new version
- Deploying the new version
- Evaluating the impact of a new version
- Explaining the concept of continuous deployment
- Summary
- Operational Patterns
- Explaining the concept of operational patterns
- Explaining the concept of performance and scalability patterns
- The cache-aside pattern
- When to use the cache-aside pattern
- The lifetime of cached data
- Evicting data
- Priming the cache
- Consistency
- Local (in-memory) caching
- The CQRS pattern
- When to use the CQRS pattern
- The event sourcing pattern
- Understanding the event of event sourcing
- Promoting performance
- Promoting decoupling
- Promoting scalability
- Promoting auditing
- Explaining the index table pattern
- The materialized view pattern
- Rebuilding the materialized view
- When to use the materialized view pattern
- Explaining the sharding pattern
- When to use the sharding pattern
- Explaining the concept of management and monitoring patterns
- The ambassador pattern
- When to use the ambassador pattern
- Explaining the health endpoint monitoring pattern
- When to use the health endpoint monitoring pattern
- Explaining the external configuration store pattern
- When to use the external configuration store pattern
- Summary
- MicroProfile
- Explaining the Eclipse MicroProfile project approach
- Eclipse MicroProfile Config 1.3
- Eclipse MicroProfile Fault Tolerance 1.1
- Eclipse MicroProfile Health Check 1.0
- Eclipse MicroProfile JWT authentication 1.1
- Eclipse MicroProfile Metrics 1.1
- Eclipse MicroProfile OpenAPI 1.0
- Eclipse MicroProfile OpenTracing 1.1
- Eclipse MicroProfile REST Client 1.1
- CDI 2.0
- Common annotations 1.3
- JAX-RS 2.1
- JSON-B 1.0
- JSON-P 1.1
- Why should we use the MicroProfile project?
- Community
- Future work
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-07-23 16:55:40