Spring Boot In Action Apr 2026

./mvnw package

public interface BookRepository extends JpaRepository<Book, Long> List<Book> findByAuthor(String author);

@Test void shouldCreateBook() throws Exception mockMvc.perform(post("/api/books") .contentType(MediaType.APPLICATION_JSON) .content("\"title\":\"Spring Boot in Action\",\"author\":\"Craig Walls\"")) .andExpect(status().isOk()); Spring Boot In Action

management.endpoints.web.exposure.include=health,info,metrics Build a fat JAR:

application-dev.properties , application-prod.properties Activate: spring.profiles.active=dev 5. Data Persistence (JPA + Repository) Entity: \"author\":\"Craig Walls\"")) .andExpect(status().isOk())

@SpringBootTest @AutoConfigureMockMvc class BookControllerTest @Autowired private MockMvc mockMvc;

./mvnw spring-boot:run → Open http://localhost:8080/api/hello application.properties (or YAML) # Server server.port=9090 server.servlet.context-path=/myapp Logging logging.level.org.springframework=INFO Data source (real DB later) spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=secret metrics Build a fat JAR: application-dev.properties

@Service @RequiredArgsConstructor public class BookService private final BookRepository bookRepo; public Book saveBook(Book book) return bookRepo.save(book);