Summary of "TOP 100+ Spring Boot & Microservices Interview Questions and Answers | Ashok IT"
Summary of Main Ideas and Concepts
1. Spring Framework Basics
- What is Spring? A lightweight, loosely coupled framework for developing enterprise backend applications like banking, e-commerce, RESTful services, microservices, and distributed systems.
- Features of Spring:
2. Dependency Injection (DI) & Inversion of Control (IoC)
- Dependency Injection: Linking dependent objects automatically to reduce manual object creation. Configured via XML or annotations.
- Types of DI:
- Constructor Injection (all dependencies required at object creation)
- Setter Injection (optional/partial injection, modifies existing objects)
- Field Injection (via
@Autowired) - Circular Injection (two objects depend on each other)
- Lookup Method Injection (special case for scope differences)
- IoC Container: Manages object lifecycle, creation, linking, and destruction based on configuration (XML or annotations).
3. Spring Beans and Bean Scopes
- Spring Bean: An object managed by Spring container.
- Bean Scopes:
- Singleton (one shared instance)
- Prototype (new instance per request)
- Request (per HTTP request)
- Session (per HTTP session)
- (Deprecated scopes also mentioned)
- Bean Wiring: Linking beans manually or automatically (autowiring by type, name, constructor).
- Annotations:
@Autowired,@Inject(Java standard),@Qualifier(to resolve ambiguity),@Primary(to set default bean).
4. Spring Configuration
- XML configuration files define beans, their properties, and dependencies.
- Java-based configuration using annotations like
@Component,@Bean,@Configuration.
5. Lifecycle Methods
initanddestroymethods for bean lifecycle hooks.- Can be defined declaratively (XML), programmatically (implementing interfaces), or via annotations (
@PostConstruct,@PreDestroy).
6. Spring MVC Framework
- MVC Pattern: Model (data), View (UI), Controller (business logic).
- DispatcherServlet: Front controller handling all requests.
- Request Mapping: Using
@RequestMappingand HTTP method-specific annotations (@GetMapping,@PostMapping, etc.). - Difference between
@Controllerand@RestController:@RestController=@Controller+@ResponseBody(returns JSON/XML). - Annotations for handling request data:
@PathVariable(extracts data from URI path)@RequestParam(extracts query parameters)@RequestBodyand@ResponseBody(for REST APIs)@ModelAttribute(binds form data to model objects)
- Validation: Using annotations like
@NotNull,@Pattern,@Email, and enabling via@Valid. - Exception Handling: Global exception handlers via
@ControllerAdviceand@ExceptionHandler. - Cross-Origin Resource Sharing (CORS):
@CrossOriginannotation to enable cross-domain requests.
7. Spring Data JPA and ORM
- ORM (Object-Relational Mapping): Mapping Java objects to relational database tables.
- JPA: Java Persistence API specification for ORM.
- Hibernate: Popular JPA implementation.
- Spring Data JPA: Provides repository interfaces (
CrudRepository,JpaRepository,PagingAndSortingRepository) to simplify database operations without writing boilerplate code. - Custom Queries: Using
@Queryannotation with JPQL or native SQL. - Entity Classes: Annotated with
@Entity,@Id,@Column. - Finder Methods: Naming conventions like
findByLastNamegenerate queries automatically. - Paging and Sorting: Support for pagination and sorting via repository interfaces.
- Transactions: Managed by
PlatformTransactionManagerand@Transactional. - Fetch Types: Eager vs lazy loading for associations.
- Join Types: Inner join, left/right/full outer joins in JPQL.
8. Spring Security
- Purpose: Authentication and authorization for Java applications.
- Features: Flexible authentication, authorization, single sign-on (
Category
Educational