- Overview of JUnit and Hamcrest
- What are good unit tests?
- Small
- Repeatable
- Independant
- Overview of Maven
- The POM
- Project Structure
- Dependency Management
- Project Build Lifecycle
- Understanding Maven Versioning
- Basics for most Java projects
- Configure the POM for Java 8+
- Configure for JUnit
- Exercise
- A little history
- How we did Java dev without/before Spring
- Why is Spring so dominant?
- Basics of Java Web Development
- The Servlet API
- Servlet Containers
- WAR Packaging
- Deployment
- Overview of the Spring Container and Dependency Injection (IoC)
- Overview of Spring Initializr
- Structure of Modern Java Web Applications (Hexagonal)
- Why we build applications this way (testable)
- Recomendations for package structure
- Overview of Spring REST
- Overview of Swagger
- Exercise
This is Andrea and Jim's SWAT talk regarding the cloud.
- What is PCF?
- Basic PCF Commands
- Apps, Routes, Services, Spaces, etc.
- Exercise
- Create a free Pivotal Web Services account
- Install the PCF CLI
- Create a manifest file for your application
- Push your application to PCF
- Scale the app up/down
- Overview of Redis
- Spring support for Redis
- Redis in PCF
- Changes in Spring configuration for the cloud (covers Spring profiles)
- Exercise
- Create a free Redis service in your PCF instance
- Create a Redis implementation of the HitCounter service
- Modify your Spring configuration to use Redis in the cloud
- Push your update to PCF and verify that the hit count persists through application stop/start
- Overview of JPA
- Configuring a Spring CRUD Repository
- Spring support for in-memory databases for testing
- Overview of different REST Methods (Safe, idempotent, etc.)
- Creating a REST controller for CRUD
- Exercise
- Spring cloud support for PostreSQL
- How to use an in-memory database for testing and PostgreSQL for production
- Exercise
- Create a free PostgreSQL service in your PCF instance
- Change the Spring configuration to use PostgreSQL in the Cloud
- Change the manifest to map PostgreSQL to your application
- Deploy, Test