Spring Boot Quiz (Advanced) - All Questions
This advanced Spring Boot quiz targets experienced developers and senior interview preparation. It focuses on deep internals, performance tuning, transactions, security, auto-configuration, and real-world production scenarios.
Question 1: Why does self-invocation break @Transactional behavior in Spring Boot?
- Transaction manager fails
- Proxy is bypassed
- Bean is not loaded
- Database connection closes
Explanation: Self-invocation bypasses the Spring proxy, so transactions are not applied.
Question 2: Which transaction propagation always starts a new transaction?
- REQUIRED
- SUPPORTS
- MANDATORY
- REQUIRES_NEW
Explanation: REQUIRES_NEW suspends the existing transaction and starts a new one.
Question 3: Why is @Transactional ineffective on private methods?
- Annotation ignored
- Compilation issue
- Proxy cannot intercept private methods
- Bean not created
Explanation: Spring proxies cannot intercept private methods.
Question 4: Which proxy mechanism does Spring Boot use by default for transactions?
- Only JDK dynamic proxies
- Only CGLIB proxies
- ByteBuddy proxies
- JDK or CGLIB based on class
Explanation: Spring uses JDK proxies or CGLIB depending on the target class.
Question 5: What is the main risk of Open Session in View (OSIV)?
- Deadlocks
- N+1 query problem
- Transaction rollback
- Memory leaks
Explanation: OSIV can hide inefficient N+1 database queries.
Question 6: Which annotation conditionally creates a bean only if none exists?
- @Conditional
- @ConditionalOnClass
- @ConditionalOnMissingBean
- @ConditionalOnProperty
Explanation: It creates a bean only when no other bean of that type exists.
Question 7: Which Spring Boot component loads auto-configuration classes?
- ApplicationContext
- SpringFactoriesLoader
- BeanFactory
- Environment
Explanation: SpringFactoriesLoader loads auto-configurations from spring.factories.
Question 8: Why is RestTemplate discouraged in new Spring Boot applications?
- Deprecated
- Blocking I/O
- Limited HTTP support
- Security issues
Explanation: RestTemplate uses blocking I/O; WebClient is non-blocking.
Question 9: Which WebClient feature enables reactive programming?
- CompletableFuture
- Mono and Flux
- ThreadPoolExecutor
- Callable
Explanation: Mono and Flux support reactive, non-blocking streams.
Question 10: Which annotation enables method-level security before execution?
- @PostAuthorize
- @Secured
- @PreAuthorize
- @EnableSecurity
Explanation: @PreAuthorize checks authorization before method execution.
Question 11: What is the default password encoder in Spring Security 5+?
- BCryptPasswordEncoder
- NoOpPasswordEncoder
- DelegatingPasswordEncoder
- PBKDF2Encoder
Explanation: DelegatingPasswordEncoder supports multiple encoders.
Question 12: Which class manages the Spring Security filter chain?
- AuthenticationManager
- SecurityContextHolder
- FilterChainProxy
- AccessDecisionManager
Explanation: FilterChainProxy manages the security filter chain.
Question 13: Which actuator endpoint exposes thread dumps?
- /metrics
- /beans
- /threaddump
- /env
Explanation: /threaddump provides JVM thread information.
Question 14: What is the purpose of SmartLifecycle?
- Lazy loading
- Graceful startup and shutdown
- Bean destruction
- Async execution
Explanation: SmartLifecycle controls startup and shutdown order.
Question 15: Which annotation helps inject prototype beans dynamically?
- @Autowired
- @Lazy
- @Lookup
- @Inject
Explanation: @Lookup retrieves a new prototype bean at runtime.
Question 16: What happens when a prototype bean is injected into a singleton?
- New instance every call
- Only one instance injected
- Injection fails
- Scope ignored
Explanation: Prototype is resolved only once during injection.
Question 17: Which Spring component customizes beans before initialization?
- BeanFactory
- BeanPostProcessor
- ApplicationContext
- BeanDefinitionReader
Explanation: BeanPostProcessor modifies beans before and after initialization.
Question 18: Which order is followed for BeanPostProcessors?
- Registration order
- Random order
- PriorityOrdered → Ordered → Others
- Alphabetical order
Explanation: Spring follows PriorityOrdered, then Ordered, then others.
Question 19: Which annotation prevents transaction rollback for specific exceptions?
- rollbackFor
- noRollbackFor
- @NoRollback
- @IgnoreRollback
Explanation: noRollbackFor excludes exceptions from rollback.
Question 20: Which isolation level prevents dirty reads?
- READ_UNCOMMITTED
- READ_COMMITTED
- REPEATABLE_READ
- SERIALIZABLE
Explanation: READ_COMMITTED prevents reading uncommitted data.
Question 21: Which executor is used by default for @Async?
- ThreadPoolTaskExecutor
- ForkJoinPool
- SimpleAsyncTaskExecutor
- CachedThreadPool
Explanation: SimpleAsyncTaskExecutor is the default async executor.
Question 22: What is a major drawback of SimpleAsyncTaskExecutor?
- Low throughput
- No thread reuse
- Blocking behavior
- Memory leaks
Explanation: It creates a new thread per task without reuse.
Question 23: Which annotation enables scheduling support?
- @EnableAsync
- @EnableScheduling
- @Scheduled
- @EnableTasks
Explanation: @EnableScheduling enables scheduled task execution.
Question 24: Which annotation dynamically imports configuration classes?
- @Import
- @ComponentScan
- @EnableAutoConfiguration
- @Configuration
Explanation: @Import loads additional configuration classes.
Question 25: What is the role of @ImportSelector?
- Import properties
- Conditionally select configurations
- Enable profiles
- Scan components
Explanation: @ImportSelector selects configurations dynamically.
Question 26: Which Spring Boot feature supports graceful shutdown?
- Actuator
- Lifecycle
- SmartLifecycle
- ShutdownHook
Explanation: SmartLifecycle enables graceful shutdown.
Question 27: Which annotation enables JPA auditing?
- @EnableAuditing
- @EnableJpaAuditing
- @Audit
- @JpaAudit
Explanation: It enables created/modified auditing fields.
Question 28: Which issue occurs if multiple @Primary beans exist?
- Compilation error
- Random injection
- Startup failure
- Beans ignored
Explanation: Multiple primary beans cause startup failure.
Question 29: Which component resolves @Value placeholders?
- Environment
- PropertySource
- PropertyPlaceholderConfigurer
- ResourceLoader
Explanation: PropertyPlaceholderConfigurer resolves placeholders.
Question 30: Why is caching often placed at service layer?
- Better UI
- Reduced DB load
- Simpler controllers
- Faster serialization
Explanation: Service-layer caching reduces database calls.
Question 31: Which annotation evicts cache entries?
- @CachePut
- @CacheClear
- @CacheRemove
- @CacheEvict
Explanation: @CacheEvict removes cached data.
Question 32: What is the default cache key for @Cacheable?
- Method name
- Random UUID
- All method parameters
- Return value
Explanation: Method parameters are used as cache key.
Question 33: Which failure occurs if @EnableAspectJAutoProxy is missing?
- Application crash
- Beans not created
- AOP not applied
- Transactions ignored
Explanation: Without it, AOP proxies are not created.
Question 34: Which Spring Boot feature exposes health and metrics?
- Spring Security
- Spring AOP
- Spring Actuator
- Spring Context
Explanation: Spring Actuator provides monitoring endpoints.
Question 35: Which actuator endpoint exposes environment properties?
Explanation: /env exposes environment configuration.
Question 36: Which issue is caused by blocking calls in WebFlux?
- Deadlocks
- Thread starvation
- Event loop blocking
- Memory leaks
Explanation: Blocking calls block the reactive event loop.
Question 37: Why is stateless authentication preferred in Spring Boot microservices?
- Less code
- Horizontal scalability
- Lower latency
- Better caching
Explanation: Stateless services scale more easily.
Question 38: Which deployment strategy enables zero downtime?
- Rolling restart
- Blue-green deployment
- Manual deployment
- Single instance
Explanation: Blue-green deployment avoids downtime.
Question 39: Which issue can occur if async exceptions are not handled?
- Compilation error
- Silent failures
- Thread deadlock
- DB corruption
Explanation: Async exceptions can fail silently.
Question 40: Which logging practice is recommended in production?
- console.log
- Structured logging
- Client-side logging
- No logging
Explanation: Structured logs improve observability.
Question 41: Why is API versioning important in Spring Boot?
- SEO
- Backward compatibility
- Smaller payloads
- Caching
Explanation: Versioning avoids breaking existing clients.
Question 42: Which annotation disables a specific auto-configuration?
- @DisableAutoConfig
- @ExcludeAutoConfiguration
- @SpringBootApplication(exclude)
- @IgnoreAutoConfig
Explanation: Exclude attribute disables auto-config classes.
Question 43: Which Spring Boot risk arises from exposing all actuator endpoints?
- Performance drop
- Security exposure
- Memory leaks
- Thread blocking
Explanation: Sensitive data can be exposed publicly.
Question 44: Which component publishes Spring application events?
- EventPublisher
- ApplicationContext
- BeanFactory
- DispatcherServlet
Explanation: ApplicationContext publishes application events.
Question 45: Which annotation listens to Spring application events?
- @OnEvent
- @EventHandler
- @EventListener
- @Listener
Explanation: @EventListener handles application events.
Question 46: Which Spring Boot practice improves fault tolerance?
- Single instance
- Circuit breaker patterns
- Synchronous APIs
- Large payloads
Explanation: Circuit breakers prevent cascading failures.
Question 47: Why should configuration be externalized in Spring Boot?
- Smaller JAR size
- Environment flexibility
- Faster startup
- Better logging
Explanation: Externalized config supports multiple environments.