[Spring] Spring -Framework,Modules and Projects
Spring -Framework,Modules and Projects
/ IOC /
Spring core : IOC Container, Dependency Injection, Auto Wiring, …
- These are the fundamental building blocks to:
- Building web applications
- Creating REST API
- Implementing authentication and autorization
- Talking to a database
- Integrating with other systems
- Writing great unit tests
- Let’s now get a Spring Big Picture:
- Spring Framework
- Spring Modules
- Spring Projects
Spring Framework contains multiple Spring Modules:
-
- Fundamental Features : Core (IOC Container, Dependency Injection, Auto Wiring, …)
- Web: Spring MVC etc (Web applications, REST API)
- Web Reactive : Spring WebFlux etc
- Data Access : JDBC, JPA etc
- Integration : JMS etc
- Testing : Mock Objects, Spring MVC Test etc
- No Dumb Question : Why is Spring Framework divided into Modules?
- Each application can choose modules they want to make use of
- They do not need to make use of everything in Spring framework!
Spring Projects
- Application architectures evolve continuously
- Web > REST API > Microservices > Colud > …
- Spring evolves through Spring Projects:
- First Project : Spring Framework
- Spring Security : Secure your web application or REST API or microservice
- Spring Data : Integrate the same way with different types of databases : NoSQL and Relational
- Spring Integration : Address Challenges with integration with other applications
- Spring Boot : Popular framework to build microservices
- Spring Cloud : Build cloud native applications
- Hierachy : Spring Projects > Spring Framework > Spring Modules
- Why is Spring Eco system popular?
- Loose Coupling : Spring manages creation and wiring of beans and dependencies
- Make it easy to build loosely coupled applications
- Make writing unit tests easy! (Spring Unit Testing)
- Reduced Boilerplate code : Focus on Business Logic
- Example : No need for exception handling in each method!
- All checked exceptions are converted to Runtime or Unchecked Exceptions
- Archtiectural Flexibility : Spring Modules and Projects
- You can pick and choose which ones to use (You DON’T need to use all of them!)
- Evolution with Time : Microservices and Cloud
- Spring Boot, Spring Cloud etc!
- Example : No need for exception handling in each method!
- Loose Coupling : Spring manages creation and wiring of beans and dependencies
댓글남기기