Answer: Spring Boot is an extension of the Spring Framework that simplifies the development of production-ready applications with minimal configuration. Unlike the traditional Spring Framework, Spring Boot offers:
Answer:
@SpringBootApplication
annotation?Answer: It is a meta-annotation that combines:
@Configuration
(for Spring configurations)@EnableAutoConfiguration
(for auto-configuration)@ComponentScan
(for scanning components in the package)Answer:
SpringApplication.run()
method in the main()
method:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
Answer: Spring Boot Initializr (https://start.spring.io/) is an online tool to create Spring Boot projects by selecting dependencies and generating a pre-configured project.
application.properties
or application.yml
file?Answer: A configuration file used to define properties such as:
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
OR using YAML format:
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
Answer: Define custom properties in application.properties
:
app.title=My Application
Access them using @Value
:
@Value("${app.title}")
private String appTitle;
OR using @ConfigurationProperties
:
@ConfigurationProperties(prefix = "app")
public class AppProperties {
private String title;
}
Answer:
@RestController
@RequestMapping("/api")
public class MyController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
}
@Controller
and @RestController
?Answer:
@Controller
returns views (HTML, JSP)@RestController
is a combination of @Controller + @ResponseBody
that returns JSON/XML responsesAnswer: Using @ControllerAdvice
:
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<String> handleNotFound(ResourceNotFoundException ex) {
return new ResponseEntity<>(ex.getMessage(), HttpStatus.NOT_FOUND);
}
}
Answer:
spring-boot-starter-security
SecurityFilterChain
Answer:
public String generateToken(String username) {
return Jwts.builder()
.setSubject(username)
.setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60))
.signWith(SignatureAlgorithm.HS512, "secret-key")
.compact();
}
Answer: Eureka is a service registry used for microservice discovery.
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
Answer:
@FeignClient(name = "user-service")
public interface UserClient {
@GetMapping("/users/{id}")
User getUserById(@PathVariable Long id);
}
Answer:
@Async
)spring.main.lazy-initialization=true
)Answer:
logging.level.root=INFO
logging.level.org.springframework=DEBUG
@SpringBootTest
used for?Answer: It loads the application context for integration testing.
@SpringBootTest
public class MyApplicationTests {
@Test
public void contextLoads() {
}
}
Answer: Using Mockito:
@MockBean
private UserService userService;