SPRING study project.
The purpose of this project is to keep up with the development of the Spring Framework
- Spring 5 - Test drives for the Spring 5 Frawework (Bare minimum focus given to Spring Boot)
- Spring Kotlin 5 - Test drives for the Spring 5 Frawework in Kotlin (Bare minimum focus given to Spring Boot)
It is important to take note that none of the examples presented are thought to become production versions of any sort of product.
The goal of this project is purely to demonstrate and provide examples of different Aspects of the Spring Framework.
Concepts related to immutability/mutability, SOLID, ACID, 12 Factor App, Reactive Manifesto and others are present, but they are not followed in every single example module.
The reason being is that they take time, and adding these concerns per module can potentially lead away from the specific goal of each module.
These modules dot not pertain to show good practices, code styles or javadocs necessarily.
When it comes to using Lombok, you'll find its usage more often, but it won't be used everywhere given that in some cases it may hide some important concepts.
These three remain a concern, but they are not the focus of this repo.
It is also true that I will do my best to improve every single module as part of my Spring Framework journey, so these concepts will show up more often.
What's important to take away from this repo it to understand how the Spring Framework works.
If you understand all of this, then please continue with your studies. Thank you! π
JoΓ£o Esperancinha, 2021/04/21
The jeorg-spring-5-test-drives repository has reached a colossal size.
Therefore, it is not feasible to continue developing on this repo for new developments.
You can consider this repo as basic overall round overview of important Spring technology developments for your day to day work. However, this is only the beginning of the road into your Spring journey. We will continue on this in a new repo called Spring Master 5 Test Drives.
JoΓ£o Esperancinha, 2021/05/21
- Spring: org.springframework - 5.2.15.RELEASE
- Spring Boot: org.springframework.boot/spring-boot-starter-parent - 2.3.11.RELEASE
Note that if you want to build this project from the root, you need to use one of the JDK 11 or upper versions.
See Hints&Tricks document for more details
mvn clean install -Dconsolerizer.show=false
Install JDK 11 using SDK-MAN
sdk install java 11.0.9.hs-adpt
sdk use java 11.0.9.hs-adpt
mvn clean test -Dconsolerizer.show=false
bash <(curl -s https://codecov.io/bash)
mvn clean install | egrep "Tests run|----"
sequenceDiagram
participant USER
participant SPRING
participant Spring Professional
rect rgb(1,130,25)
USER->>SPRING: User studies spring
SPRING->>Spring Professional: User becomes
loop Keep updated
Spring Professional->>SPRING: User studies again
end
end
Note: You need a Mermaid plugin extension
i.e. mermaid-plugin
@Transational timeout
, TestRestTemplate
, HealthIndicator
, actuator
, Embedded
, JPA
, Big Data
The examples presented in this repo need to use a docker-engine/docker-machine in order to run.
This is because they make use of the testcontainers project.
I tested this using Docker Desktop for mac and on an ubuntu-unity machine. As long as the docker-machine/docker-engine is running, the maven build shoud also work.
Using embedded alternatives revealed to be quite cumbersome, inefficient and slow.
For more info on docker desktop please check their website.
For learning how to install docker in ubuntu please check their website.
When this is ready, just run:
make build
or
mvn clean install
- Cosmina, I. (11th December 2019). Pivotal Certified Professional Core Spring 5 Developer Exam: A Study Guide Using Spring Framework 5. (Second Edition). Apress
- Sharma, R. (September 2018). Hands-On Reactive Programming with Reactor. (First Edition). Packt
- Cosmina, I. Harrop, R. Schaefer, C. Ho, C. (October 2017). Pro Spring 5 An In-Depth Guide to the Spring Framework and Its Tools. (Fifth Edition). Apress
- Winch, R. Mularien, P. (December 2012). Spring Security 3.1. (Second Edition). Packt Publishing
- Kurniawan, B. Deck, P. (January 2015). Servlet, JSP & Spring MVC. (First Edition). Brainy Software
- Long, J. (2020). Reactive Spring. (First Edition). Josh Long