Spring Boot In Action |best| Link

@Scheduled(fixedDelay = 5000) public void fixedDelayTask() { // Runs 5 seconds after previous execution }

@Service public class UserService { @Cacheable(value = "users", key = "#id") public User findById(Long id) { return userRepository.findById(id).orElseThrow(); } spring boot in action

@Test @Transactional @Rollback void databaseTest() { // Rollback after test } } @DataJpaTest class UserRepositoryTest { @Autowired private TestEntityManager entityManager; @Autowired private UserRepository repository; } @Autowired private UserRepository repository

@JsonTest class UserJsonTest { } Profile Configuration # application-dev.yml spring: datasource: url: jdbc:h2:mem:testdb jpa: show-sql: true application-prod.yml spring: datasource: url: ${DATABASE_URL} hikari: maximum-pool-size: 20 Using Profiles @Configuration @Profile("dev") public class DevConfig { } @Service @Profile("!test") public class ProductionService { } @Column(unique = true) private String email

// Enable configuration properties @EnableConfigurationProperties(AppProperties.class) Spring Data JPA @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique = true) private String email; @CreationTimestamp private LocalDateTime createdAt; }