-> 등록하기 버튼 누르면 'addNewGoods.do' 로 전송
컨트롤러에서는 상품 정보와 이미지 정보등을 통해서 DB에 업로드 해야하는데 jsp에서는 클라이언트가 입력한 값들 + 이미지 파일 + 이미지 파일의 이름 속성 정도만 넘어왔는데 어떻게 등록을 하나.... 싶지만
AdminGoodsControllerImpl는 일반 클래스 BaseController를 상속받고 인터페이스
AdminGoodsController를 구현한다.
A extends B = A는 B를 상속해 +a 기능 사용한다 (calss 상속)
A implement B = A는 B의 모든 기능을 사용 해야함 (interface 상속)BaseController에 있는 upload()의 기능만 추가로 사용하면서 AdminGoodsController의 모든 기능을 재정의해야한다. (위에서 사용한 addNewGoods()도 AdminGoodsController의 기능이다)
(BaseController - upload())
그리고 AdminGoodsService에서 의존성을 주입받아 해당 서비스의 메서드를 호출하여 관련 기능을 사용할 수 있다!
(AdminGoodService - addNewGoods())
여러 계층에서의 재사용과 의존성 주입을 통해 코드를 모듈화하고 유지보수하기 쉽게 만드는 것이 개발 패턴 중 하나이다!
1. Controller : 웹 요청을 처리하고 비즈니스 로직을 호출 'AdminGoodsControllerImpl' 클래스가 이 역할을 수행한다.
2. Service : 비즈니스 로직을 구현하고, 데이터베이스 액세스나 다른 비즈니스 로직을 조합하여 작업을 수행한다. 'AdminGoodsServiceImpl' 클래스가 이 역할을 수행한다.
3. DAO(Data Access Object) : 데이터베이스와 상호 작용하는 역할을 한다. 'AdminGoodsDAOImpl' 클래스가 이 역할을 수행한다.
상속받고 구현하고 의존성을 주입받아서 ... 다양한 기능들을 끌어다 써 상품 번호의 폴더를 생성, 이미지 파일들을 추가가해서 addNewGoodForm.jsp 의 요청을 처리한 뒤 alert로 알림