Tech Interview Questions
171 subscribers
18 photos
1 file
67 links
Download Telegram
Tech Interview Questions pinned «Please vote your roles»
What is the difference between @Controller and @RestController?
@Controller is used to define a Spring MVC controller that returns a view (e.g., JSP, Thymeleaf).
@RestController is a convenience annotation that combines @Controller and @ResponseBody. It is used when the controller returns data directly (e.g., JSON, XML) instead of a view.
What are Spring Profiles? How are they useful?
Spring Profiles allow you to define different configurations for different environments (e.g., dev, test, prod).
• They are activated using
spring.profiles.active in application.properties or via environment variables.
• Example:
@Profile("dev") ensures a bean is only loaded in the dev environment.
Explain the difference between @Component, @Repository, and @Service.
@Component: Generic annotation for Spring-managed components.
@Repository: Specialized for Data Access Objects (DAO). It provides exception translation.
@Service: Specialized for the service layer. Indicates a service class for business logic.
👍1
What is the difference between @Component and @Configuration in Spring?
@Component: Marks a class as a Spring-managed bean. It’s generally used for classes like services, repositories, or controllers.
@Configuration: A specialized @Component used for defining bean creation methods explicitly using @Bean. It ensures singleton behavior for beans defined within the class.
👍1
What is the difference between @RestController and @Controller?

Answer:

@Controller: A specialization of @Component used for defining controllers in Spring MVC. Typically used in conjunction with @RequestMapping to define request-handling methods. It returns views (HTML pages) via ModelAndView.

@RestController: Combines @Controller and @ResponseBody. It is used to create RESTful web services and automatically serializes Java objects into JSON or XML.
How does Spring Boot auto-configuration work?

Answer:

Spring Boot uses the @EnableAutoConfiguration annotation (or indirectly via @SpringBootApplication) to configure beans based on the libraries on the classpath and properties defined in application.properties or application.yml.

The spring.factories file inside META-INF lists all the auto-configuration classes, which are conditionally applied using @ConditionalOnClass, @ConditionalOnProperty, etc.
What is the difference between @Component, @Repository, and @Service?

Answer:

@Component: A generic stereotype annotation for any Spring-managed component.

@Repository: A specialization of @Component used to indicate a Data Access Object (DAO). Automatically translates database exceptions into Spring exceptions.

@Service: A specialization of @Component used to indicate a service layer bean. It is used to encapsulate business logic.
How does Spring Boot handle exceptions in REST APIs?

Answer:

Use @ControllerAdvice to define a global exception handler.

Handle exceptions with @ExceptionHandler methods in the advice class.

Return meaningful HTTP status codes and error messages in the response body.
What is the purpose of the @SpringBootApplication annotation?

Answer:

It is a combination of three annotations:

1. @SpringBootConfiguration: Similar to @Configuration.


2. @EnableAutoConfiguration: Enables Spring Boot's auto-configuration.


3. @ComponentScan: Scans the package where the application class resides.
What is the use of @Conditional annotations in Spring Boot?

Answer:

Spring Boot uses @Conditional annotations to enable conditional bean creation.

Examples:

@ConditionalOnClass: Bean is created only if a specific class is on the classpath.

@ConditionalOnProperty: Bean is created only if a specific property is defined in the configuration.
🔥3
Forwarded from Java Express
Today's demo session will cover Spring Boot features, and the trainer will conduct a quiz on Spring Boot basics and its key features. Don't miss it! 🚀

🔥 Spring Boot & Microservices
🔥 Real Time Java Project
👨‍✈️ Trainer : Mr. Bhaskar

Day 3 : 20th Feb @ 9 OM IST
👉 Enroll Now for Meeting Details : https://bit.ly/4gyBoIV

📞 Join In WhatsApp : https://bit.ly/3Rbgvd1

Back Up Videos
Day 1 : https://youtu.be/TgPi69_iGRg
Day 2 : https://youtu.be/XEPQpuqBCAM
⚡️⚡️What are Spring Boot Starters?⚡️⚡️

Answer:
Spring Boot
Starters are pre-configured dependency packs that simplify project setup.
• Example Starters:
spring-boot-starter-web → For web applications
spring-boot-starter-data-jpa → For JPA and Hibernate
spring-boot-starter-security → For Spring Security

Example (Maven Dependency for Spring Boot Web Starter):

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
Please open Telegram to view this post
VIEW IN TELEGRAM
🔡🔡What is Spring Boot Actuator?

Answer:
Spring Boot
Actuator provides monitoring and management features for applications.
• It exposes endpoints like:
/actuator/health → Checks application health
/actuator/metrics → Shows performance metrics
/actuator/env → Displays environment properties

Enable Actuator in application.properties:

management.endpoints.web.exposure.include=health,metrics,info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🔡 What are Embedded Servers in Spring Boot?

Answer:
Spring Boot includes
embedded servers like Tomcat, Jetty, and Undertow, eliminating the need for external deployment.
• By default, Spring Boot uses
Tomcat (spring-boot-starter-web).
• You can switch to
Jetty:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
<scope>provided</scope>
</dependency>


• Server configuration can be customized in application.properties:

server.port=8081
server.tomcat.threads.max=200
Please open Telegram to view this post
VIEW IN TELEGRAM
🔡 How do you customize logging in Spring Boot?

Answer:
Spring Boot uses
Logback by default but supports SLF4J, Log4j2, and Java Util Logging.

Customize Logging in application.properties:

logging.level.org.springframework=DEBUG
logging.level.com.myapp=INFO
logging.file.name=app.log
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2