애플리케이션을 사용할 때 사용하는 개발을 위한 framework
예제코드
@Controller public class ToDoController { @RequestMapping(value = "/todo", method = RequestMethod.POST) @ResponseBody public List<ToDo> todo(@RequestParam("todoName")String todoName, @RequestParam("todoDate")String todoDate) { ToDo.todoList.add(new ToDo(todoName, todoDate)); return ToDo.todoList; } @RequestMapping(value = "/todo", method = RequestMethod.GET) @ResponseBody public List<ToDo> todoList() { return ToDo.todoList; } }
기본틀
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-config/applicationContext.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-config/dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> . . .
예제코드
@RestController public class TodoController { private TodoRepository todoRepository; @Autowired TodoController(TodoRepository todoRepository) { this.todoRepository = todoRepository; } @PostMapping(value = "/todo/register") @ResponseBody public Todo register(Todo todo){ // (1) todoRepository.save(todo); // (2) return todo; } @GetMapping(value = "/todo/list") @ResponseBody public List<Todo> getTodoList(){ return todoRepository.findAll(); // (3) } }
- 클라이언트 측에서 전달한 요청 데이터를 (1)과 같이 Todo라는 클래스에 담아서 한번에 전달함
- (2),(3)과 같이 데이터베이스에 저장해서 데이터 액세스 처리까지 함.
Spring Boot의 구성 파일
spring.h2.console.enabled=true spring.h2.console.path=/console spring.jpa.generate-ddl=true spring.jpa.show-sql=true
- spring MVC와는 비교도 안되게 간단해짐.
- 이는 복잡한 설정들을 spring에서 대신 처리해주도록 함.
Spring Boot를 쓰는 이유
implementation 'org.springframework.boot:spring-boot-starter-web
implementation 'org.springframework.boot:spring-boot-starter-jdbc
- 웹 애플리케이션을 띄울 서블릿 컨테이너 설정을 자동으로 구성한다
- 애플리케이션에 데이터베이스 연결이 필요하다고 추측한 뒤 JDBC 설정을 자동으로 구성한다.
다음과 같은 설정으로 적용할 수 있다.
즉, @SpringBootApplication 애너테이션만 추가해주면된다.
@SpringBootApplication // (1)
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
여기서 빌드 명령을 실행하고
생성된 jar파일은 즉시 시작 가능한 애플리케이션 실행 파일로 사용된다.
java -jar <jar 파일명>.jar