은은하게 코드 뿌시기

Spring MVC Framework/스프링 mvc 구조 이해/ 스프링 mvc 주요 어노테이션 본문

웹/spring

Spring MVC Framework/스프링 mvc 구조 이해/ 스프링 mvc 주요 어노테이션

은은하게미친자 2022. 8. 16. 23:09
728x90

: 로직과 화면을 분리

* Spring MVC 구조

spring mvc 구조

1. 사용자의 요청을 Front Cotroller에 전달

2. 전달된 요청을 적절한 Cotroller를 찾아 호출

3. Spring MVC의 Controller는 해당 Service 객체를 찾아호출

4. Service 객체는 DAO객체를 이용하여 원하는 Data를 요청

5. DAO객체는 Mybatis를 이용하는 Mapper를 통해 작업을 수행 (CURD)

10. Service를 통해 처리한 데이터를 Cotroller에 전달

12. Spring MVC의 Controlller는 다시 스프링 MVC쪽으로 데이터를 전달

 

* Spring MVC 주요 애너테이션

애너테이션 기능
@Controller Controller객체임을 명시
@Repository DAO 객체임을 명시
@Service Service 객체임을 명시
@RequestMapping 특정 URI에 매칭되는 클래스나, 메서드임을 명시
@GetMapping 주어진 URI 표현식과 일치하는 HTTP GET 방식으로 처리하는 메소드 임을 명시
@PostMapping 주주어진 URI 표현식과 일치하는 HTTP POST 방식으로 처리하는 메소드 임을 명시
@RequestParam 요청에서 특정한  파라미터 값을 찾아 낼때 사용
@RequestHeader 요청에서 특정 HTTP 헤더 정보를 추출할때 사용
@PathVariable 현재 URI에서 원하는 정보를 추출할 때 사용
@CookieValue 현재 사용자의 쿠키가 존재하는 경우 쿠키의이름을 이용해서 쿠키 값을 추출
@ModelAttribute 자동으로 해당 객체를 뷰까지 전달하도록 만드는 애너테이션
@SessionAttribute 세션상에서 모델의 정보를 유지하고 싶은 경우 사용
@InitBinder 파라미터 수집해서 객체로 만들 경우
@ResponseBody 리턴 타입이 HTTP의 응답메세지로 전송
@RequestBody 요청 문자열이 그대로 파라미터로 전달

spring mvc 구조

 

VIEW


src/main/WEB-INF/views

home.jsp


a태그
empcount
사원수 요청
Servelet Controller

src/main/java/kr.co.dong.emp

EmpController.java


@Controller
@Inject  또는 @Autowired
@RequestMapping(value="addEmp", method = RequestMethod.GET)
Service

src/main/java/kr.co.dong.emp

EmpServiceImpl.java

서비스


@Service
@Autowired
DAO
src/main/java/kr.co.dong.emp

EmpDAOImpl.java

DAO

.cnt
@Repository
My batis Mapper <=> Mysql-DB
src/main/resources/mappers

empMapper.xml
[DAO] 
EmpDAOImpl.java  empcount() 리턴

[Service]
EmpServiceImpl.java  empcount() 리턴

Controller
EmpController.java 에서 리턴값 받아서 

서비스 함수의 리턴 값을 받아

ModelAndView에

view단 까지 전달

728x90
Comments