In reactive programming with Spring Boot, how can you handle errors in a reactive stream?
- By avoiding errors altogether through careful coding.
- By relying on the default error handling provided by Spring Boot.
- By using the onError operator and other error-handling operators provided by Project Reactor.
- By using try-catch blocks around reactive operators.
In reactive programming with Spring Boot, you can handle errors in a reactive stream by using the onError operator and other error-handling operators provided by Project Reactor. These operators allow you to define how to react to errors within the stream, whether it's by logging, retrying, switching to a fallback stream, or propagating the error to the subscriber. This enables robust error handling and recovery strategies in reactive applications.
To inject mock objects into the tested object in a Spring Boot unit test, the _____ annotation is used with Mockito.
- @Autowired
- @InjectMocks
- @MockBean
- @MockitoInject
In Spring Boot unit testing with Mockito, you use the @InjectMocks annotation to inject mock objects into the object being tested. This allows you to control the behavior of dependencies during testing.
You are developing a Spring Boot application with a large team. How would you manage and segregate configuration properties for different modules?
- By embedding configuration properties directly in the source code to ensure they are tightly coupled with their respective modules.
- By relying on a centralized configuration service that manages properties for all modules in a monolithic manner.
- By storing all configuration properties in a single file and maintaining a shared spreadsheet for tracking properties used by different modules.
- By using Spring Boot's external configuration mechanisms like application.properties or application.yml files, and organizing them into separate folders or packages for each module.
When developing a Spring Boot application with a large team, it's best to use Spring Boot's external configuration mechanisms like application.properties or application.yml files. These can be organized into separate folders or packages for each module, making it easier to manage and segregate configuration properties. Storing all properties in a single file or embedding them in the source code is not a scalable or maintainable approach. A centralized configuration service can be complex and less flexible for individual modules.
What does the @ConditionalOnClass annotation do in the context of Auto Configuration?
- It defines a required class for Auto Configuration.
- It disables Auto Configuration for a specific class.
- It indicates a conditional bean creation.
- It specifies the class to be ignored.
The @ConditionalOnClass annotation, when used in the context of Auto Configuration, defines a required class for Auto Configuration to be enabled. If the specified class is present on the classpath, the associated configuration will be applied. This allows developers to conditionally configure components based on the availability of certain classes. It does not ignore, disable, or indicate conditional bean creation.
In Spring Boot, the _____ attribute of the @ExceptionHandler annotation allows you to define the types of exceptions the method will handle.
- errorTypes
- exceptions
- handled
- value
In Spring Boot, the value attribute of the @ExceptionHandler annotation is used to specify the types of exceptions that a particular method should handle. By specifying the exception types, you can ensure that the method is invoked only when those specific exceptions are thrown, allowing for more fine-grained exception handling in your application.
In Mockito, the _____ method can be used to stub a return value for a method call.
- mock
- spy
- verify
- when
In Mockito, the when method is used to stub a return value for a method call. This allows you to define the behavior of a mocked object when a specific method is called during testing.
In Spring Boot, the _____ annotation is used to denote a reactive programming model in a controller.
- @Controller
- @ReactiveController
- @ResponseBody
- @RestController
In Spring Boot, the @ReactiveController annotation is used to denote a reactive programming model in a controller. This annotation is specifically designed for reactive programming, and it's part of the Spring WebFlux framework, which enables reactive and non-blocking programming. It's used to define controllers that handle asynchronous and reactive operations.
When configuring OAuth2 Resource Server in Spring Boot, the _____ property is used to specify the location of the public key for verifying JWT signatures.
- public_key_location
- jwt_signing_key
- token_verifier
- security_policy
When configuring an OAuth2 Resource Server in Spring Boot, the public_key_location property is used to specify the location of the public key for verifying JWT signatures. This key is essential for validating the authenticity and integrity of JWT tokens used for authentication and authorization. The other options are not typically used for specifying the public key location.
In Spring Boot, which annotation is used to denote that a test class should load only specific parts of the application context for Web tests?
- @ContextConfiguration
- @SpringBootTest
- @WebAppConfiguration
- @WebMvcTest
The @WebMvcTest annotation is used to load only the Web layer of the Spring application context, making it suitable for testing controllers and related components.
How can you conditionally exclude specific Auto Configurations in a Spring Boot application?
- Using the spring.autoconfigure.exclude property in application.properties or application.yml.
- By annotating the class with @ExcludeAutoConfiguration and specifying the classes to exclude.
- By removing the Auto Configuration JARs from the classpath.
- By using a custom excludeAutoConfiguration method in the main application class.
To conditionally exclude specific Auto Configurations, you can use the spring.autoconfigure.exclude property in your application.properties or application.yml file. This property allows you to specify the fully qualified names of the Auto Configuration classes you want to exclude. The other options do not provide a direct way to conditionally exclude Auto Configurations.