Spring Framework and Spring Boot - vidyasekaran/current_learning GitHub Wiki

https://spring.io/projects/spring-framework

Complete Spring documentation : https://docs.spring.io/spring-boot/docs/2.3.3.RELEASE/reference/htmlsingle/

Spring Framework

The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.

Features

Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP. Testing: mock objects, TestContext framework, Spring MVC Test, WebTestClient. Data Access: transactions, DAO support, JDBC, ORM, Marshalling XML. Spring MVC and Spring WebFlux web frameworks. Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache. Languages: Kotlin, Groovy, dynamic languages.

Spring Boot

https://spring.io/projects/spring-boot

Spring Boot Features : https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-messaging

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".

We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration.

If you’re looking for information about a specific version, or instructions about how to upgrade from an earlier release, check out the project release notes section on our wiki.

Features

Create stand-alone Spring applications Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files) Provide opinionated 'starter' dependencies to simplify your build configuration Automatically configure Spring and 3rd party libraries whenever possible Provide production-ready features such as metrics, health checks, and externalized configuration Absolutely no code generation and no requirement for XML configuration

Getting Started

Super quick — try the Quickstart Guide. More general — try Building an Application with Spring Boot More specific — try Building a RESTful Web Service. Or search through all our guides on the Guides homepage.

Building an Application with Spring Boot (https://spring.io/guides/gs/spring-boot/)

This guide provides a sampling of how Spring Boot helps you accelerate application development. As you read more Spring Getting Started guides, you will see more use cases for Spring Boot. This guide is meant to give you a quick taste of Spring Boot. If you want to create your own Spring Boot-based project, visit Spring Initializr, fill in your project details, pick your options, and download a bundled up project as a zip file.

Building a RESTful Web Service

https://spring.io/guides/gs/rest-service/

Securing a Web Application

This guide walks you through the process of creating a simple web application with resources that are protected by Spring Security. https://spring.io/guides/gs/securing-web/

Spring Security Architecture

https://spring.io/guides/topicals/spring-security-architecture/

This guide is a primer for Spring Security, offering insight into the design and basic building blocks of the framework. We cover only the very basics of application security. However, in doing so, we can clear up some of the confusion experienced by developers who use Spring Security. To do this, we take a look at the way security is applied in web applications by using filters and, more generally, by using method annotations. Use this guide when you need a high-level understanding of how a secure application works, how it can be customized, or if you need to learn how to think about application security.

This guide is not intended as a manual or recipe for solving more than the most basic problems (there are other sources for those), but it could be useful for beginners and experts alike. Spring Boot is also often referenced, because it provides some default behavior for a secure application, and it can be useful to understand how that fits in with the overall architecture.

Spring Security and Angular (Must try this one out - as this is a complete Microservice + API Gateway + angular app and redis)

https://spring.io/guides/tutorials/spring-security-and-angular-js/

#Social Login with Spring Boot and OAuth 2.0 https://github.com/spring-guides/tut-spring-boot-oauth2

Enabling Cross Origin Requests for a RESTful Web Service

https://spring.io/guides/gs/rest-service-cors/

This guide walks you through the process of creating a “Hello, World” RESTful web service with Spring that includes headers for Cross-Origin Resource Sharing (CORS) in the response. You can find more information about Spring CORS support in this blog post.

From Zero to Hero with Spring Boot - Brian Clozel

https://tanzu.vmware.com/content/springone-platform-2017/from-zero-to-hero-with-spring-boot-brian-clozel

What’s New in Spring Boot 2.0

https://tanzu.vmware.com/content/springone-platform-2017/whats-new-in-spring-boot-2-0-phillip-webb-madhura-bhave

Building a Hypermedia-Driven RESTful Web Service

https://spring.io/guides/gs/rest-hateoas/

This guide walks you through the process of creating a “Hello, World” Hypermedia-driven REST web service with Spring.

Hypermedia is an important aspect of REST. It lets you build services that decouple client and server to a large extent and let them evolve independently. The representations returned for REST resources contain not only data but also links to related resources. Thus, the design of the representations is crucial to the design of the overall service.