Building web apps with Spring 5 and Angular build modern end-to-end web applications using Spring and Angular
A complete guide to build robust and scalable web applications with Spring and Angular. About This Book This hands on guide will teach you how to build an end-to-end modern web application using Spring and Angular. It is easy to read and will benefit Java developers who have been used to develop the...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham :
Packt
2017.
|
Edición: | 1st edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630707706719 |
Tabla de Contenidos:
- Cover
- Copyright
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: Introduction to Spring Web Framework
- Introduction to the Spring IOC container
- What is IOC?
- What is a Spring IOC container?
- Introduction to Spring Web MVC
- Key building blocks of a Spring Web MVC application
- Introduction to the Dispatcher servlet
- Building Hello World web application with Spring Boot
- The Spring STS Setup in Eclipse IDE
- Introduction to Spring Boot
- Building &
- #160
- Hello World web app using Spring Boot
- Implementing Controllers
- Handling request parameters
- The RequestParam annotation
- The RequestBody annotation
- The PathVariable annotation
- Handling Interceptors
- Handling Response
- Response as an instance of ModelAndView
- Using @ResponseBody annotation
- Creating a RESTful web service
- Dockerizing a Spring Boot application
- Summary
- Chapter 2: Preparing the Spring Web Development Environment
- Installing the Java SDK
- Installing/configuring Maven
- Installing the Eclipse IDE
- Import the existing Maven project in Eclipse
- Creating a new Maven project in Eclipse&
- #160
- Installing/configuring the Apache Tomcat server
- Adding/configuring Apache Tomcat in Eclipse
- Installing/configuring the MySQL database
- Installing/configuring the MySQL server&
- #160
- Using the MySQL connector
- Connecting to the MySQL database from a Java class
- Introduction to Docker
- What are Docker containers?
- What are real-world containers good for?
- How do Docker containers relate to real-world containers?
- Docker containers
- What are the key building blocks of Dockers containers?
- Installing Docker
- Setting up the development environment using Docker compose
- What is Docker compose?.
- Docker Compose Script for setting up the Dev Environment
- Setting up the Tomcat 8.x as a container service
- Setting up MySQL&
- #160
- as a container service
- Docker compose script to set up the development environment
- Summary
- Chapter 3: Data Access Layer with Spring and Hibernate
- An introduction to Hibernate
- Setting up Hibernate with Spring
- Setting up data source information in the application.properties file
- Using&
- #160
- annotations to wire a SessionFactory bean
- Configure bean definitions
- Autowire SessionFactory in DAOs
- Design domain objects and database tables
- User
- Introduction to NamedQuery and Criteria
- What is NamedQuery?
- What is Criteria?
- Common Hibernate operations
- Data retrieval
- Save/persist operation
- Update/merge operation
- The saveOrUpdate operation
- Transaction management
- Declarative transaction management
- Summary
- Chapter 4: Testing and Running Spring Web App
- How to run the Spring Boot app&
- #160
- Introduction to unit testing fundamentals
- What is unit testing?
- Why write unit tests?
- Unit testing naming conventions
- Introduction to JUnit 5
- Architectural building blocks of JUnit 5
- Setting up and running JUnit tests
- Mocking dependencies using Mockito
- Getting set up with Mockito
- Introduction to mocking techniques
- Unit testing controllers, services, and DAOs
- Unit tests for controllers
- Unit tests for Services
- Unit tests for DAO components
- Summary
- Chapter 5: Securing Web App with Spring Security
- Introduction to Spring Security
- Spring Security high level architecture
- Spring Security architecture - core building blocks
- Spring Security architecture - authentication
- Spring &
- #160
- Security architecture - authorization
- Setting up Spring Security
- Handling the login authentication.
- CSRF protection for API requests
- CSRF prevention technique for the Angular app
- CSRF prevention technique for the Spring app
- Handling the logout request
- OAuth2 for authentication/authorization
- Introduction to OAuth2-based authentication &
- amp
- authorization
- Spring Security and&
- #160
- OAuth2 authentication
- OAuth2 Implementation for Spring Web App
- OAuth2 Implementation for Angular App
- Acquiring access token
- Accessing resources using access token
- Summary
- Chapter 6: Getting Started with Angular
- Introduction to Angular
- How is Angular different from AngularJS?
- AngularJS - The MVC way of building UI apps
- Angular - The Component Way of Building Web Apps
- Setting up the Angular development environment
- TypeScript fundamentals
- Forms
- Template-driven forms
- Reactive forms
- Pipes
- Directives
- Structural directives
- Attribute directives
- Server communication
- Bootstrapping an Angular app
- Best practices
- Summary
- Chapter 7: Creating SPA with Angular and Spring 5
- Introduction to routing
- Configuring Route definitions
- RouterLink for navigation
- What is RouterLink?
- What is ActivatedRoute?
- Route Guards for access control
- Routing configuration design patterns
- Routing within AppModule
- Routing as a separate module at the app root level
- Routing within feature modules
- Creating a single page app (SPA)&
- #160
- Lean root module
- Features as separate modules
- Auth module
- Doctor module
- Route Guards for controlled access
- Debugging Angular app
- Debugging Angular app using Firefox and Chrome
- Debugging Angular app using Augury
- Summary
- Chapter 8: Unit Testing with Angular Apps
- Introduction to unit testing
- Unit testing tools for Angular apps
- Jasmine
- Karma
- Protractor&
- #160.
- Angular testing utilities&
- #160
- Setting up the unit test environment
- Angular unit testing building blocks
- Unit testing strategies
- Unit testing the components
- Unit testing a component with an external template
- Unit testing a component with one or more dependencies
- Unit testing a component with an async service
- Component-under-test - DoctorListComponent
- External service - DoctorService
- Unit test for DoctorListComponent
- Unit testing a routed component
- Test doubles for Router and ActivatedRoute
- Unit test for a routed component
- Unit testing the services
- Service under test - DoctorService
- Unit test for DoctorService
- Summary
- Chapter 9: Securing an Angular App
- Common web application security vulnerabilities
- What is Cross-Site Scripting (XSS)?
- What is Cross-Site Script Inclusion (XSSI)?
- What is Cross-Site Request Forgery (CSRF/XSRF)?
- Securing an app from XSS
- Displaying trusted HTML values
- The Custom SecurityBypass pipe
- Securing an app from XSSI
- Securing app from CSRF/XSRF
- Best practices
- Summary
- Chapter 10: Integrating Angular App with Spring Web APIs
- Building RESTful Spring web APIs
- Configure Spring app for CORS
- Key aspects of Angular data services
- Promise and Observable responses
- Promise for asynchronous data exchange
- Observable for asynchronous data exchange
- Building Angular services for RESTful integration
- Invoking server APIs using the Angular HTTP service
- Consuming RESTful Spring APIs using the HTTP service
- Posting to RESTful Spring APIs using the HTTP service
- Invoking &
- #160
- server APIs using the Angular HttpClient service
- Example of consuming RESTful Spring web APIs&
- #160
- Spring RESTful API for user login
- Custom Angular component for managing login view.
- Custom Angular service for serving login functionality
- Summary
- Chapter 11: Deploying the Web Application
- Introduction to CI and CD
- Setting up Jenkins and GitLab
- Setting up Jenkins
- Setting up GitLab
- Setting up GitLab and Jenkins using Docker Compose
- Configuring GitLab as a code repository
- Creating Jenkins jobs for CI
- Configuring Jenkins and GitLab for CI/CD&
- #160
- Configuring webhooks in GitLab
- Configuring Jenkins for automated build triggers
- Configuring Jenkins jobs for CD
- Deploying Angular app in production
- Angular app deployed on separate server
- Angular app deployed on Spring app server
- Summary
- Index.