Spring framework

Spring Framework Documentation

Spring Framework Documentation: https://docs.spring.io/spring-framework/docs/current/reference/html/index.html

Overview - history, design philosophy, feedback, getting started : https://docs.spring.io/spring-framework/docs/current/reference/html/overview.html#overview

Core - IoC Container, Events, Resources, i18n, Validation, Data Binding, Type Conversion, SpEL, AOP : https://docs.spring.io/spring-framework/docs/current/reference/html/core.html

Data Access - Transactions, DAO Support, JDBC, R2DBC, O/R Mapping, XML Marshalling: https://docs.spring.io/spring-framework/docs/current/reference/html/data-access.html#spring-data-tier

Web Servlet - Spring MVC, WebSocket, SockJS, STOMP Messaging: https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#spring-web

Web Reactive - Spring WebFlux, WebClient, WebSocket, RSocket: https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html#spring-webflux

Integration - Remoting, JMS, JCA, JMX, Email, Tasks, Scheduling, Caching: https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#spring-integration

Languages - Kotlin, Groovy, Dynamic Languages: https://docs.spring.io/spring-framework/docs/current/reference/html/languages.html#languages

Appendix - Spring properties: https://docs.spring.io/spring-framework/docs/current/reference/html/appendix.html#appendix

Wiki - What’s New, Upgrade Notes, Supported Versions, and other cross-version information: https://github.com/spring-projects/spring-framework/wiki

Official website: https://spring.io/projects

What is Spring Framework?

Spring makes programming Java quicker, easier, and safer for everybody. Spring’s focus on speed, simplicity, and productivity has made it the world’s most popular Java framework.

Spring can be used for developing anything from simple web applications to enterprise-class cloud applications and microservices.

Spring provides comprehensive infrastructure support for developing applications with complex requirements and designs.

Spring framework handles the infrastructure part (using dependency injection), so the developers can focus on the application’s core functionality.

Spring framework contains formalized design patterns as first-class objects that developers can integrate into our application(s) without worrying too much about how they work in the backend.

What are the Advantages of Spring Framework?

  1. With Dependency Injection (DI) pattern, application dependencies are explicitely declared and maintained.
  2. IoC containers tend to be lightweight, especially when compared to EJB containers. This is beneficial for developing and deploying Spring applications on computers with limited memory and CPU resources.
  3. Spring does not reinvent the wheel, instead, it truly makes use of some of the existing technologies like several ORM frameworks, logging frameworks, JMS and, other view technologies.
  4. Spring is organized in a modular fashion and even though the number of packages and classes are substantial, we have to worry about only those dependencies we need and we can ignore the rest.
  5. Testing a Spring application is simple because the environment-dependent code is managed by the framework. Further, by using java beans style POJOs, it becomes easier to use dependency injection for injecting test data.
  6. Spring’s web framework is a well-designed web MVC framework, which provides a great alternative to web frameworks such as Struts or other over engineered or less popular web frameworks.
  7. Spring provides a consistent transaction management interface that can scale down to a local transaction (using a single database, for example) and scale up to global transactions (using JTA, for example).

Spring Common application properties

  1. https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
  2. https://docs.spring.io/spring-boot/docs/current/reference/html/index.html
  3. https://medium.com/@xoor/jwt-authentication-service-44658409e12c
  4. https://github.com/murraco/spring-boot-jwt

Tags

  1. Servlet and ServletContainer
  2. Spring Cloud and Cloud native development
  3. Spring annotations
  4. Spring auto configuration
    1. Spring auto configuration - Conditional
    2. Display Auto-Configuration Report in Spring Boot
  5. Spring batch
  6. Spring Beans
  7. Spring Boot actuator
  8. Spring Boot application without web component
  9. Spring Boot application without main method
  10. Spring Boot - Embedded servlet containers
  11. Spring Boot Devtools - Automatic Reload
  12. Spring Boot file IO
  13. Spring Boot good practices
  14. spring-boot-maven-plugin
  15. Spring Boot startup behavior
  16. Spring Boot starter parents
  17. Spring Boot Testing
    1. Spring Boot Testing - Using ReflectionTestUtils for Unit Testing
    2. Spring Boot Testing - Integration tests for the Controller
    3. Spring Boot Testing - MockMvc
    4. Spring Boot Testing - WebMvcTest
  18. Spring Data
    1. Spring Data JPA
    2. Spring Data Elasticsearch
    3. Spring Data - Repository populators
    4. Spring Data R2DBC
    5. Spring Data JPA - working with multiple databases
    6. Spring Data JPA - testing
    7. Spring Data JPA - transactions
    8. Spring Data JPA - Generated Queries
    9. Spring Data JPA - Repositories
    10. Spring Data JPA - Reasons to use
    11. Spring Data JPA - setup and configuration
    12. Spring Data JPA - Batch entity inserts and updates
    13. Spring Data JPA - Single entity inserts and updates
    14. Spring Data JPA - Entities
    15. Spring Data JPA - Queries
    16. Spring Data JPA - Using Projections for Selective Data Retrieval
    17. Spring Data JPA - Pagination
    18. Spring Data JPA - Pagination and Sorting
    19. Spring Data JPA - Dynamic Queries with SpEL Expressions
  19. Spring Interceptors vs Servlet Filters
  20. Spring IOC Container
  21. Spring profiles
  22. Spring security
  23. Spring modules
  24. Spring - Application Events
  25. Spring - CommandLineRunner interface
  26. Spring - Concurrency Model
  27. Spring - design patterns used
  28. Spring - DispatcherServlet
  29. Spring - Events
  30. Spring - exception handling
  31. Spring - Externalized Configuration
  32. Spring - Running an app with Springboot vs standard Spring framework
  33. Spring web frameworks
    1. Spring MVC
    2. Spring MVC - Accessing HttpRequest from controller
    3. Spring - REST API design and implementation
    4. Spring web frameworks - Spring RestTemplate
    5. Spring web frameworks - Spring WebFlux
  34. Frustrations with spring framework
  35. Alternatives to Spring and spring boot
  36. Proxies in Spring
  37. What are the pitfalls of using springboot for java applications?
  38. Request Logging
  39. How to start a springboot application in debug mode?
  40. Different ways of loading data into databases at spring application start-up?

Links to this note