Framework
Framework와 Library
Library
차이
Framework 장점
Framework 단점
Spring Framework
Spring Framework 도입 전 기술
JSP를 이용한 애플리케이션
서블릿(Servlet)을 이용한 애플리케이션
@WebServlet(name = "TodoServelt")
public class TodoServlet extends HttpServlet {
// (1) DataBase를 대신한다
private List<ToDo> todoList;
@Override
public void init() throws ServletException {
super.init();
this.todoList = new ArrayList<>();
}
// (2) 클라이언트 측에서 요청을 받아 데이터 저장소에 등록한다
// DB가 아닌 List에 담아줌
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF_8");
response.setContentType("text/html;charset="UTF_8");
String todoName = request.getPArameter("todoName");
String todoDate = request.getParameter("todoDate");
todoList.add(new ToDo(todoName, todoDate));
RequestDispatcher dispatcher =
request.getRequestDispatcher("/todo.jsp");
request.setAttribute("todoList", todoList);
dospatcher.forward(request, response);
}
// (3)
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throw ServletException, IOException {
System.out.println("Hello Servlet doGet!");
RequestDispatcher dispatcher =
request.getRequestDispatcher("/todo.jsp");
dispatcher.forward(request, response);
}
}
Spring MVC 를 이용한 애플리케이션
@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 = ReuestMethod.GET)
@ResponseBody
public List<ToDo> todoList() {
return ToDo.todoList;
}
}
Spring Boot
@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) DB에 저장
return todo;
}
@GetMapping(value = "/todo/list")
@ResponseBody
public List<Todo> getTodoList(){
return todoRepository.findAll(); // (3) 데이터 엑세스 처리
}
}
.properties
파일 보단 .yml
파일이 더 간단# application.properties
spring.h2.console.enabled=true
spring.h2.console.path=/console
spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
# application.yml
spring:
h2:
console:
enalbled: true
path: /console
jpa:
generate-ddl: true
show-sql: true
추가학습 Spring 간단 정리