myapp: custom-property: value @ConfigurationProperties(prefix = "myapp") @Component public class AppProperties { private String customProperty; private EmailConfig email = new EmailConfig(); // getters/setters @Data public static class EmailConfig { private String host; private int port; } }
@Test @Transactional @Rollback void databaseTest() { // Rollback after test } } @DataJpaTest class UserRepositoryTest { @Autowired private TestEntityManager entityManager; @Autowired private UserRepository repository; } spring boot in action
@CacheEvict(value = "users", key = "#user.id") public User update(User user) { return userRepository.save(user); } private EmailConfig email = new EmailConfig()
@CacheEvict(value = "users", allEntries = true) public void clearCache() { } } Scheduled Tasks @Configuration @EnableScheduling public class SchedulingConfig { } @Component public class ScheduledTasks { private int port
@Scheduled(initialDelay = 10000, fixedRate = 30000) public void fixedRateTask() { } } @Configuration @EnableAsync public class AsyncConfig implements AsyncConfigurer { @Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(5); executor.setMaxPoolSize(10); executor.setQueueCapacity(100); executor.initialize(); return executor; } }