Hey guys this is a one stop shop for all the resources related to Spring and Spring boot, follow these posts in the order that i have written to learn complete about Spring and Spring boot. I will be adding more tutorials as i learn new topics.
What is Spring?
Spring is a Java web framework build to create enterprise production ready application.
When we create a Java enterprise application, we need to do a lot of configurations, we need to add lot packages, jars and also we need to add database support as well.
Spring is Java web framework it will allows us to do lot of things. Spring provides a bunch of modules for various configurations, we can use those modules to build our application. But to use all these modules, we need to do lot of configurations to up and run the application.
Long story short, Spring framework helps us to create production ready application but we need to do lot of configuration.
What is Spring Boot?
Spring boot is a tool introduced by Spring Team, to create Spring based applications quickly and easily. It provides zero configuration support. We can concentrate only on the actual business logic rather than concentrating on the configuration.
Spring boot is not a framework, it’s a tool or extension to create Spring based applications. Spring boot internally uses Spring.
Advantages of using Spring boot
- Rapid application development
- Managing the dependencies
- Auto configuration support
- Support for embedded servers
- Support for creating microservices
Dependency Injection
In typical Java applications, we as a developer, create Java objects. But when we are working with enterprise production grade applications, this is not a good idea. Because creating the objects, destroying object and managing their lifecycle is not easy. So instead of we create the objects, we give a control over to the framework to do manage the lifecycle of objects. This is called Inversion of Control.
To use Inversion of Control, we need to use Dependency Injection, it a design pattern it will allows us to create Java objects without using new
keyword.
When the spring boot application runs, spring has a factory or container, it creates the Beans for us, next whenever we ask for the particular bean, first it will check in the container, if its present then it gives the already created object otherwise it creates new objects for us.
Spring Initializr
Spring team provides an online web tool to create Spring boot starter project. You can find the Spring initializer tool on this URL https://start.spring.io/
To create spring boot project, all you need to do is Enter the project details, spring boot version and add the dependencies. You can check the following the article to see how to create spring boot project using Spring initializer.
Examples
- Create Spring boot application in STS IDE
- Create Spring boot application using IntelliJ IDEA
- Spring Boot Project structure explained
- Run spring boot application from command line using Maven
- Spring boot project structure Best practices
- Spring Boot starters and dependencies list
- Spring Boot upload file to AWS S3
- Spring security JWT Token based authentication Example
Spring Boot and Thyemeleaf
Spring Boot and JdbcTemplate
- Spring boot JDBCTemplate Select Query Example
- Spring boot JDBCTemplate queryForObject() with Example
- Spring JdbcTemplate Delete Example
- Spring JdbcTemplate Save object Example
- Spring JdbcTemplate Update Example
- Spring boot JdbcTemplate CRUD operations using MySQL
Spring Annotations
Following are the spring annotations
- @PathVariable
- @RequestParam
- @RequestBody
- @ResponseBody
- @RequestMapping
- @Autowire
- @Bean
- @ExceptionHandler
- @ControllerAdvice
- @Valid
- @PostConstruct
- @ResponseStatus
- @ModelAttribute
- @RequestHeader
- @Controller
- @RestController
- @Value
- @GetMapping
- @PostMapping
- @PutMapping
- @PatchMapping
- @DeleteMapping
- @SpringBootApplication
- @PreAuthorize
Spring Security Examples
Following are the spring security examples
- Add Spring security to Spring boot application
- Customize the username and password in Spring security
- Customize the URL mapping with spring security
- Customize the spring security to permit all the requests
- Customize the spring security to deny all the requests
- Configure users in spring security using inMemoryAuthentication
- Configure users in spring security using inMemoryUserDetailsManager
- Configure users in spring security using JdbcUserDetailsManager
- Create our own custom implementation of UserDetailsService.
- Implement password encoder using BCryptPasswordEncoder
- Customize authentication provider in spring security application
- Configure authorities in spring security application
- Configure Roles in spring security application
- Spring security method level annotation @PreAuthorize
- JWT token based authentication with spring security.
Spring Boot and JPA Examples
- Spring boot + Data JPA + MySQL database example [2021]
- Spring boot + Hibernate + JPA + MySQL CRUD REST API [2021]
- Spring boot + Hibernate + JPA + H2 database CRUD REST API Tutorial [2021]
- Spring boot + Hibernate + JPA + PostgreSQL database CRUD REST API Tutorial
- Spring boot REST API testing using JUnit
- Spring Data JPA ID Generators with examples
- Spring Data JPA finder or query method for single column name
- Spring Data JPA finder or query method for multiple column names
- Spring Data JPA finder or query method for less than or greater than
- Spring Data JPA finder or query method for contains columns
- Spring Data JPA finder or query method for between columns
- Spring Data JPA finder or query method for like columns
- Spring Data JPA finder or query method for IN keyword
- Spring Data JPA pagination with example
- Spring Data JPA sort by date with example
- Spring Data JPA sort multiple columns with example
- Spring Data JPA pagination and sorting with example
- Spring Data JPA JPQL select query with example
- Spring Data JPA JPQL delete query with example
- Spring Data JPA JPQL update query with example
- Spring boot and JPA One to One mapping with example
- Spring boot and JPA Join query with example
- Spring boot and JPQL join query in Data JPA
- Spring boot and data JPA one to one bi-directional with example
- Spring boot and data JPA one to many Uni directional
- Spring boot and data JPA one to many bi-directional
- Spring boot and data JPA native query with example
- Spring boot and data JPA @NamedQuery annotation
- Spring boot and data JPA @NamedNativeQuery annotation
- Swagger API documentation with Spring boot
- Spring boot swagger Open API 3 documentation
Angular and Spring Boot Full Stack App
- Angular and Spring boot Project Setup [Part 1]
- Angular and Spring boot display the list of records [Part 2]
- Angular and Spring boot save the data to database [Part 3]
- Angular and Spring boot update the data to database [Part 4]
- Angular and Spring boot delete the data from database [Part 5]
- Angular and Spring boot search by keyword [Part 6]
- Angular and Spring boot sorting [Part 7]
React (React Hooks)and Spring Boot Full Stack App
- React and Spring boot Full stack application – Create Spring boot application
- React and Spring boot Full stack application – Create React application
- React, Spring boot and PostgreSQL Full stack application