# Create Spring Boot Project [Reference](https://spring.io/projects/spring-boot) * Browse [Spring Initialzr](https://start.spring.io/) * Option to select * Gradle * Java 8 * Dependencies * Lombok * Spring Web / REST Repositories * Download the generated project * Open with `IntelliJ IDEA` # Create REST endpoint * Create a java class * Annotation with `@RESTController`, `@GetMapping` etc ```java package com.razer.starter.api.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @RestController @Slf4j public class HomeController { @GetMapping("/home1") public String Home(){ // log instaciate from @Slf4j annotation log.info("home..."); return "Welcome Home"; } } ``` * Run the project ```sh ./gradlew bootRun ``` * Browse [localhost](http://localhost:8080/home1) to reach the endpoint ```text home... ``` ## Create IntelliJ Debug Configuration * `Run `> `Edit Configuration...` * Add `bootRun` Task. Click `OK` * Now `Run...` or `Debug...` accordingly * Alternatively, goto `main` and right click on side bar to run / debug ```java public class StarterApplication { private static final Logger log = LoggerFactory.getLogger(StarterApplication.class); public static void main(String[] args) { SpringApplication.run(StarterApplication.class, args); } } ``` [Build Application Guide](https://spring.io/guides/gs/spring-boot/) ## Run Application * From CLI ```shell // spring.profiles.active to load .properties file according to profile setting // below load [resources/application-prod.properties] $ java -Dspring.profiles.active=prod -jar app.jar ``` * dd