summary
https://www.notion.so/Spring-1-b5980823f7644e5e88fd2c71dfea2319
Servlet : 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양
Servlet VS Controller
클라이언트 서버
Javascript <--- JSON ---> JAVA
Servlet 대신 Controller를 사용하면 JSON<-->JAVA 측면에서 훨씬 더 효율적이다
Controller : 클라이언트로 부터 요청을 받고 요청에 대한 처리는 서비스에게 전달해서 서비스로부터 결과가 돌아오면 그 결과를 클라이언트에게 전송
Service : 비지니스 로직 처리 (서버에서 사용자의 요구사항 처리) 실제 사용자의 요구사항이 여기서 처리
Repository : DB관리 역할, 연결, 해제, 자원 관리까지, DB의 CRUD작업 처리
전체적 흐름
Client가 요청이 들어오면 Controller에게 가고, Controller는 그 요청을 Service에게 보내주고, Service는 비지니스 로직을 처리하고 처리하다가 DB의 정보가 필요하면 repository에 전담하고, Repository는 DB에 필요한 정보를 조회,저장,업데이트,삭제 하는 역할하고 그 결과를 service에게 전달. Service는 필요한 비지니스 로직을 다 마무리 지으면 결과를 Controller에게 보내주고, Controller가 그 결과를 Client에게 보내줌.
updateProduct를 하나의 controller에서만 호출하는 건 아니기 때문에 productservice에 최저가 설정을 해준다.
this.productService = new ProductService로 만들어서 쓰던 것을 스프링 IoC를 이용하면 이미 만들어져 있는 객체를 가져다가 바로 사용하면 됨.
(@Autowired 이용해서)