舉報

會員
Spring 5.0 Projects
SpringmakesiteasytocreateRESTfulapplications,mergewithsocialservices,communicatewithmoderndatabases,secureyoursystem,andmakeyourcodemodularandeasytotest.WiththearrivalofSpringBoot,developerscanreallyfocusonthecodeanddelivergreatvalue,withminimalcontour.ThisbookwillshowyouhowtobuildvariousprojectsinSpring5.0,usingitsfeaturesandthirdpartytools.We'llstartbycreatingawebapplicationusingSpringMVC,SpringData,theWorldBankAPIforsomestatisticsondifferentcountries,andMySQLdatabase.Movingahead,you'llbuildaRESTfulwebservicesapplicationusingSpringWebFluxframework.You'llbethentakenthroughcreatingaSpringBoot-basedsimpleblogmanagementsystem,whichusesElasticsearchasthedatastore.Then,you'lluseSpringSecuritywiththeLDAPlibrariesforauthenticatingusersandcreateacentralauthenticationandauthorizationserverusingOAuth2protocol.Further,you'llunderstandhowtocreateSpringBoot-basedmonolithicapplicationusingJHipster.Towardtheend,we'llcreateanonlinebookstorewithmicroservicearchitectureusingSpringCloudandNet?ixOSScomponents,andataskmanagementsystemusingSpringandKotlin.Bytheendofthebook,you'llbeabletocreatecoherentand?exiblereal-timewebapplicationsusingSpringFramework.
最新章節(jié)
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Summary
- User registration
- Validation
- REST call in Kotlin
品牌:中圖公司
上架時間:2021-07-02 12:22:39
出版社:Packt Publishing
本書數(shù)字版權(quán)由中圖公司提供,并由其授權(quán)上海閱文信息技術(shù)有限公司制作發(fā)行
- Leave a review - let other readers know what you think 更新時間:2021-07-02 12:35:56
- Other Books You May Enjoy
- Summary
- User registration
- Validation
- REST call in Kotlin
- Deleting a task
- Viewing a task
- Showing a task list
- Getting all users
- Adding a task comment
- Updating a task
- Adding a new task
- Showing the edit task page
- Showing the add new task page
- Showing the login page
- Showing the control page
- Defining the Spring MVC controller
- UserDetailsService approach
- Query approach
- Spring Security
- Comments
- Task
- Role
- Users
- Entity classes
- DB design
- Creating a Spring Boot project with Kotlin
- Developing an application – Task Management System
- Spring supports for Kotlin
- Kotlin versus Java
- Operator overloading
- Smart casts
- Calling Java code from Kotlin
- Calling the Kotlin code from Java
- Interoperability
- Data classes
- Null safety
- Returning a function from another function
- Passing lambda to another function
- Lambda expression or function literal
- Extension functions
- Default function arguments
- Function as an expression
- The concept of a function
- Kotlin features
- IDE Support
- Safety feature
- Concise yet powerful
- Interoperability
- Introducing Kotlin
- Technical requirements
- Task Management System Using Spring and Kotlin
- Summary
- Securing an application
- Configuring the API gateway
- Load balancing using RestTemplate
- Configuring Ribbon with Eureka
- Configuring Ribbon without Eureka
- Load balancing with Ribbon
- Making RESTful calls across microservices with Feign
- Step 3 – making each microservice Spring Cloud Config-aware using the Spring Cloud Config Client component
- Step 2 – configuring Spring Cloud Config with a Git repository
- Step 1 – creating a Spring Boot service for the configuration server
- Dynamic configuration in Spring Cloud
- Other Spring Cloud and Netflix OSS components
- Composite front
- Micro front
- Monolithic front
- Designing the UI
- Setting up Zuul as an API gateway
- Designing an API gateway
- Develop a service discovery server
- Adding microservice-specific capabilities
- Creating microservices with Spring Boot
- Inventory schema
- Catalog schema
- Order schema
- User schema
- Each microservice has its own database
- Separate service to handle database interaction
- Single monolithic database for all microservices
- Database design
- Application architecture
- Developing an online bookstore application
- Spring Cloud Stream
- Distributed tracing service
- Spring Cloud Security
- Routing
- Circuit breakers
- Service discovery
- Configuration management
- Microservices with Spring Cloud
- Microservice characteristics
- Domain-driven design
- Hide implementation through encapsulation
- Loose coupling
- Service autonomy
- High cohesion with a single responsibility
- Microservice principles
- Microservice architecture
- Microservices introduction
- Technical requirements
- Creating an Online Bookstore
- Summary
- The JHipster Marketplace
- Community support and documentation
- Continuous integration support
- Upgrading JHipster
- Testing support
- Live reload
- Profile management
- Docker support
- Microservice support
- Maintaining code quality
- API
- Logs
- Audit
- Configuration
- Health
- Metrics
- User management
- Administration
- Account management
- Home and login screens
- Setting screens out of the box
- IDE support
- Other JHipster features
- Updating navigation
- Hooking the GDP module into AppModule
- Angular template to show country GDP
- An Angular component to show country GDP
- Showing the GDP screen
- Angular template to show the country list
- Creating an Angular component to show the country list
- Angular modules
- Creating the Angular router
- Creating an Angular service
- The search country screen
- Developing custom screens
- Adding a filter option to existing entities
- The REST controller layer
- The service layer
- The persistence layer
- Filter provision in service persistence and the REST controller layer
- Handling enumeration data with a database in JHipster
- Application and entity creation
- Showing the national gross domestic product
- Generating an entity using a model
- Modeling with JHipster Domain Language studio
- Modeling with UML
- Modeling the entity
- Adding an entity with the CLI
- Entity creation
- Project structure
- Creating an application
- Installing JHipster
- Introducing JHipster
- Technical requirements
- An Application to View Countries and their GDP using JHipster
- Summary
- Method-level resource permissions
- Resource server configuration
- Authorization server configuration
- OAuth authorization with a custom authorization server
- Dual authentication with OAuth and LDAP
- OAuth with a custom login page
- The default OAuth configuration
- Changes in the Spring Boot application
- Application registration
- Spring Security integration with OAuth
- Which grant type should be used?
- Client Credentials
- Resource Owner Password Credentials
- Implicit
- Authorization code
- Grant types
- OAuth roles
- OAuth
- Importing role information to perform authorization
- Creating roles in the LDAP server
- LDAP authorization with Spring Security
- Using LdapTemplate to perform CRUD operations
- Initializing LdapTemplate
- Performing CRUD operations with LdapTemplate
- The Spring Data repository for LDAP
- Spring Data models
- Managing LDAP users with Spring Data
- Creating a web application with Spring Boot
- Spring Security integration with LDAP
- The LDAP structure
- Apache DS partitions
- Example DIT structures
- Configuring Apache DS as an LDAP server
- What is LDAP?
- LDAP
- Technical requirements
- Building a Central Authentication Server
- Summary
- Building a UI with the Mustache template
- Displaying data with RESTful web services in Spring
- Updating and deleting comment data with Elasticsearch
- Reading comment data with Elasticsearch aggregation
- Adding comment data with Elasticsearch aggregation
- Searching blog data
- Reading blog data
- Adding blog data
- CRUD operations in Elasticsearch with Spring Data
- Connecting Elasticsearch with Spring Data
- Spring Data Elasticsearch model class
- Elasticsearch integration with Spring Data
- Creating index and document types for Blogpress
- Searching a query
- Deleting a document (student data)
- Updating a document (student data)
- Reading a document (student data)
- Adding a document (student data)
- Creating a document type – student
- Creating an index – students
- Elasticsearch RESTful API
- Installation
- Interacting with Elasticsearch
- Shards and replicas
- Clusters and nodes
- Indexes
- Documents
- Artifacts
- Storing data with Elasticsearch
- Substituting auto-configuration
- Excluding auto-configuration
- Making the application secure with Spring Security
- Why Thymeleaf is a natural template
- Dialects processors and expression objects
- How Thymeleaf works
- Presentation layer with Thymeleaf
- Spring Model-View-Controller web flow
- Configuring IDE Spring Tool Suite
- Project skeleton with Spring Boot
- Application overview
- Technical requirements
- Blogpress - A Simple Blog Management System
- Summary
- WebSocket support
- Composite routers
- Combining handler and router
- Defining routers and handlers
- Prerequisite for a functional approach in Spring WebFlux
- Artifacts required in functional-style Reactive Programming
- Functional endpoint
- Annotated controller
- WebFlux programming models
- Creating a Spring Data repository
- MongoDB data structure
- MongoDB installation
- Spring WebFlux application
- Reactive span across Spring modules
- Spring MVC versus Spring WebFlux
- Spring WebFlux
- Reactive support in Spring Framework
- Vert.x
- Akka stream
- Ratpack
- Reactor lifecycle methods
- Custom subscribers
- Types of subscribers
- Reactor in action
- Reactor types
- Reactor sub-projects
- Operators
- Handling concurrency independently
- Push-pull mechanism
- Handling data stream with high volume
- Reactor features
- Project Reactor
- Operators
- Other ways to get Observable
- Hot Observable
- Cold Observable
- Observable types
- Custom Observers
- Observable for iterators
- Observer event calls
- Anatomy of RxJava
- RxJava
- Reactive Streams TCK
- Processor rules
- Subscription rules
- Subscriber rules
- Publisher rules
- Reactive Streams specifications
- Reactive Streams
- Reactive Programming in Java
- Reactive Programming techniques
- Benefits of Reactive Programming
- Backpressure
- Basics of Reactive Programming
- Reactive Programming
- Reactive system
- Technical requirements
- Building a Reactive Web Application
- Summary
- Running the application
- Logging configuration
- Creating the base template
- Managing static resources
- Configuring a Thymeleaf template engine
- Defining the view templates
- Defining the view controller
- Deploying to Tomcat
- Defining the RESTful API controller for country language resource
- Defining the RESTful API controller for city resource
- Defining the RESTful API controller for country resource
- Configuration to deploy to Tomcat without web.xml
- Enabling Web MVC using @EnableWebMvc
- Defining the API controllers
- Designing the client for World Bank API
- Designing the CountryLanguageDAO
- Designing the CityDAO
- Designing the CountryDAO
- Defining the RowMapper
- Setting up the test environment
- Defining the JDBC connection properties
- Defining the data access layer – Spring JDBC Template
- Using Hibernate Validator to add validations
- Defining the model classes
- Creating an empty application
- Add a new city and language
- Country edit page
- Country detail page
- Country listing page
- Designing the wireframes of application screens
- Understanding the World Bank API
- Understanding the database structure
- Introduction to the application
- Technical requirements
- Creating an Application to List World Countries with their GDP
- Reviews
- Get in touch
- Conventions used
- Code in Action
- 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 author
- Contributors
- Packt.com
- Why subscribe?
- About Packt
- Spring 5.0 Projects
- Copyright and Credits
- Title Page
- coverpage
- coverpage
- Title Page
- Copyright and Credits
- Spring 5.0 Projects
- About Packt
- Why subscribe?
- Packt.com
- Contributors
- About the author
- 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
- Code in Action
- Conventions used
- Get in touch
- Reviews
- Creating an Application to List World Countries with their GDP
- Technical requirements
- Introduction to the application
- Understanding the database structure
- Understanding the World Bank API
- Designing the wireframes of application screens
- Country listing page
- Country detail page
- Country edit page
- Add a new city and language
- Creating an empty application
- Defining the model classes
- Using Hibernate Validator to add validations
- Defining the data access layer – Spring JDBC Template
- Defining the JDBC connection properties
- Setting up the test environment
- Defining the RowMapper
- Designing the CountryDAO
- Designing the CityDAO
- Designing the CountryLanguageDAO
- Designing the client for World Bank API
- Defining the API controllers
- Enabling Web MVC using @EnableWebMvc
- Configuration to deploy to Tomcat without web.xml
- Defining the RESTful API controller for country resource
- Defining the RESTful API controller for city resource
- Defining the RESTful API controller for country language resource
- Deploying to Tomcat
- Defining the view controller
- Defining the view templates
- Configuring a Thymeleaf template engine
- Managing static resources
- Creating the base template
- Logging configuration
- Running the application
- Summary
- Building a Reactive Web Application
- Technical requirements
- Reactive system
- Reactive Programming
- Basics of Reactive Programming
- Backpressure
- Benefits of Reactive Programming
- Reactive Programming techniques
- Reactive Programming in Java
- Reactive Streams
- Reactive Streams specifications
- Publisher rules
- Subscriber rules
- Subscription rules
- Processor rules
- Reactive Streams TCK
- RxJava
- Anatomy of RxJava
- Observer event calls
- Observable for iterators
- Custom Observers
- Observable types
- Cold Observable
- Hot Observable
- Other ways to get Observable
- Operators
- Project Reactor
- Reactor features
- Handling data stream with high volume
- Push-pull mechanism
- Handling concurrency independently
- Operators
- Reactor sub-projects
- Reactor types
- Reactor in action
- Types of subscribers
- Custom subscribers
- Reactor lifecycle methods
- Ratpack
- Akka stream
- Vert.x
- Reactive support in Spring Framework
- Spring WebFlux
- Spring MVC versus Spring WebFlux
- Reactive span across Spring modules
- Spring WebFlux application
- MongoDB installation
- MongoDB data structure
- Creating a Spring Data repository
- WebFlux programming models
- Annotated controller
- Functional endpoint
- Artifacts required in functional-style Reactive Programming
- Prerequisite for a functional approach in Spring WebFlux
- Defining routers and handlers
- Combining handler and router
- Composite routers
- WebSocket support
- Summary
- Blogpress - A Simple Blog Management System
- Technical requirements
- Application overview
- Project skeleton with Spring Boot
- Configuring IDE Spring Tool Suite
- Spring Model-View-Controller web flow
- Presentation layer with Thymeleaf
- How Thymeleaf works
- Dialects processors and expression objects
- Why Thymeleaf is a natural template
- Making the application secure with Spring Security
- Excluding auto-configuration
- Substituting auto-configuration
- Storing data with Elasticsearch
- Artifacts
- Documents
- Indexes
- Clusters and nodes
- Shards and replicas
- Interacting with Elasticsearch
- Installation
- Elasticsearch RESTful API
- Creating an index – students
- Creating a document type – student
- Adding a document (student data)
- Reading a document (student data)
- Updating a document (student data)
- Deleting a document (student data)
- Searching a query
- Creating index and document types for Blogpress
- Elasticsearch integration with Spring Data
- Spring Data Elasticsearch model class
- Connecting Elasticsearch with Spring Data
- CRUD operations in Elasticsearch with Spring Data
- Adding blog data
- Reading blog data
- Searching blog data
- Adding comment data with Elasticsearch aggregation
- Reading comment data with Elasticsearch aggregation
- Updating and deleting comment data with Elasticsearch
- Displaying data with RESTful web services in Spring
- Building a UI with the Mustache template
- Summary
- Building a Central Authentication Server
- Technical requirements
- LDAP
- What is LDAP?
- Configuring Apache DS as an LDAP server
- Example DIT structures
- Apache DS partitions
- The LDAP structure
- Spring Security integration with LDAP
- Creating a web application with Spring Boot
- Managing LDAP users with Spring Data
- Spring Data models
- The Spring Data repository for LDAP
- Performing CRUD operations with LdapTemplate
- Initializing LdapTemplate
- Using LdapTemplate to perform CRUD operations
- LDAP authorization with Spring Security
- Creating roles in the LDAP server
- Importing role information to perform authorization
- OAuth
- OAuth roles
- Grant types
- Authorization code
- Implicit
- Resource Owner Password Credentials
- Client Credentials
- Which grant type should be used?
- Spring Security integration with OAuth
- Application registration
- Changes in the Spring Boot application
- The default OAuth configuration
- OAuth with a custom login page
- Dual authentication with OAuth and LDAP
- OAuth authorization with a custom authorization server
- Authorization server configuration
- Resource server configuration
- Method-level resource permissions
- Summary
- An Application to View Countries and their GDP using JHipster
- Technical requirements
- Introducing JHipster
- Installing JHipster
- Creating an application
- Project structure
- Entity creation
- Adding an entity with the CLI
- Modeling the entity
- Modeling with UML
- Modeling with JHipster Domain Language studio
- Generating an entity using a model
- Showing the national gross domestic product
- Application and entity creation
- Handling enumeration data with a database in JHipster
- Filter provision in service persistence and the REST controller layer
- The persistence layer
- The service layer
- The REST controller layer
- Adding a filter option to existing entities
- Developing custom screens
- The search country screen
- Creating an Angular service
- Creating the Angular router
- Angular modules
- Creating an Angular component to show the country list
- Angular template to show the country list
- Showing the GDP screen
- An Angular component to show country GDP
- Angular template to show country GDP
- Hooking the GDP module into AppModule
- Updating navigation
- Other JHipster features
- IDE support
- Setting screens out of the box
- Home and login screens
- Account management
- Administration
- User management
- Metrics
- Health
- Configuration
- Audit
- Logs
- API
- Maintaining code quality
- Microservice support
- Docker support
- Profile management
- Live reload
- Testing support
- Upgrading JHipster
- Continuous integration support
- Community support and documentation
- The JHipster Marketplace
- Summary
- Creating an Online Bookstore
- Technical requirements
- Microservices introduction
- Microservice architecture
- Microservice principles
- High cohesion with a single responsibility
- Service autonomy
- Loose coupling
- Hide implementation through encapsulation
- Domain-driven design
- Microservice characteristics
- Microservices with Spring Cloud
- Configuration management
- Service discovery
- Circuit breakers
- Routing
- Spring Cloud Security
- Distributed tracing service
- Spring Cloud Stream
- Developing an online bookstore application
- Application architecture
- Database design
- Single monolithic database for all microservices
- Separate service to handle database interaction
- Each microservice has its own database
- User schema
- Order schema
- Catalog schema
- Inventory schema
- Creating microservices with Spring Boot
- Adding microservice-specific capabilities
- Develop a service discovery server
- Designing an API gateway
- Setting up Zuul as an API gateway
- Designing the UI
- Monolithic front
- Micro front
- Composite front
- Other Spring Cloud and Netflix OSS components
- Dynamic configuration in Spring Cloud
- Step 1 – creating a Spring Boot service for the configuration server
- Step 2 – configuring Spring Cloud Config with a Git repository
- Step 3 – making each microservice Spring Cloud Config-aware using the Spring Cloud Config Client component
- Making RESTful calls across microservices with Feign
- Load balancing with Ribbon
- Configuring Ribbon without Eureka
- Configuring Ribbon with Eureka
- Load balancing using RestTemplate
- Configuring the API gateway
- Securing an application
- Summary
- Task Management System Using Spring and Kotlin
- Technical requirements
- Introducing Kotlin
- Interoperability
- Concise yet powerful
- Safety feature
- IDE Support
- Kotlin features
- The concept of a function
- Function as an expression
- Default function arguments
- Extension functions
- Lambda expression or function literal
- Passing lambda to another function
- Returning a function from another function
- Null safety
- Data classes
- Interoperability
- Calling the Kotlin code from Java
- Calling Java code from Kotlin
- Smart casts
- Operator overloading
- Kotlin versus Java
- Spring supports for Kotlin
- Developing an application – Task Management System
- Creating a Spring Boot project with Kotlin
- DB design
- Entity classes
- Users
- Role
- Task
- Comments
- Spring Security
- Query approach
- UserDetailsService approach
- Defining the Spring MVC controller
- Showing the control page
- Showing the login page
- Showing the add new task page
- Showing the edit task page
- Adding a new task
- Updating a task
- Adding a task comment
- Getting all users
- Showing a task list
- Viewing a task
- Deleting a task
- REST call in Kotlin
- Validation
- User registration
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-07-02 12:35:56