1. 자바스프링 정리

2024. 1. 16. 14:57언어/java

728x90

일단 MVC 패턴으로 

 

DAO  

   ㄴ EquipmentDAO

Service

   ㄴ EquipmentServiceImpl(class)
   ㄴ EquipmentService(interface)

Controller 

   ㄴ EquipmentController

폴더를 생성


DAO

데이터 베이스에 보내주는 역활 

public interface EquipmentDAO { 
    public int equipmentInsert(HashMap<String, Object> params) throws Exception;

}

Service

 비즈니스 로직을 담당

여기서

EquipmentServiceImpl(class)
EquipmentService(interface) 두개가있는데

 

왜 ? 두개를 써야되는데?

 

EquipmentService(interface)에 장비등록을 만들어줍니다.

public interface EquipmentService {
	public int equipmentInsert (HashMap<String, Object> params) throws Exception;
			}

 

 

 

만약 우리가 EquipmentServiceImpl 에 비즈니스 로직인(장비등록) 을 만들어 놨습니다.

    @Service
    public class EquipmentServiceImpl implements EquipmentService {
       
      @Override
   	 public int equipmentInsert(HashMap<String, Object> params) throws Exception {
        return equipmentDAO.equipmentInsert(params);
    	}
  }

그러면 우리는  장비 등록을 쓸수 있겠죠?

근데 

 

장비 말고 사용자를 등록하고 싶다. 그러면 

humantServiceImpl 파일을 만들어서 이렇게 적어주고 원래있던 EquipmentServiceImpl 에 서비스를 주석처리하면

바로 쓸 수있습니다.

    @Service
    public class humanServiceImpl implements EquipmentService {
       
      @Override
   	 public int equipmentInsert(HashMap<String, Object> params) throws Exception {
        return equipmentDAO.equipmentInsert(params);
    	}
  }

 

 

간단히 말하면, 의존성 주입은 필요한 기능을 외부에서 주입받아 사용하는 것입니다. 

이를 통해 우리는 다른 기능을 쉽게 추가하거나 변경할 수 있으며, 코드의 유연성과 확장성을 높일 수 있습니다.

또한 같은 기술일 경우 굳이 컨트롤을 수정할 필요없이 코드의 확장성을 높일 수 있습니다.

 

 


Controller 

 

    @RequestMapping(value = "/equipmentInsert.json", method = RequestMethod.POST)
    public ModelAndView equipmentInsert(@RequestBody HashMap<String, Object> params) throws Exception {
        System.out.println("equipmentInsert Controller" + params);
        ModelAndView mav = new ModelAndView("jsonView");
        mav.addObject("result", equipmentService.equipmentInsert(params));
        return mav;
    }

 

728x90

'언어 > java' 카테고리의 다른 글

프로젝트 2 날라가기전에 복구파일  (0) 2024.01.18
프로젝트 1 날라가기전에 복구 파일  (0) 2024.01.18
카카오 지도 api / 쿼리문  (0) 2024.01.12
8. CRUD 연동 연습  (1) 2024.01.12
7. 카페메뉴 백엔드 CRUD  (0) 2024.01.07