Step-by-Step

[Spring] 2. Controller 작성 본문

프로젝트/Eggo (Mobile App)

[Spring] 2. Controller 작성

희주(KHJ) 2022. 3. 30. 15:46

Spring의 MVC

- 스프링 프레임워크(Spring Framework)는 Model-View-Controller(MVC) 패턴을 사용

MVC 패턴 - 위키백과

- Model : 어떤 동작을 수행하는 코드

- View : 모델을 컨트롤러로부터 가져와 사용자에게 보여줌

- Controller : 모델의 상태 변경 및 화면(View)와 비지니스 로직(Model)을 연결하는 Routing 역할

 

Controller 구현하기

1. Client가 URI 형식으로 웹 서비스에 요청 보냄

2. Mapping되는 Handler와 해당 Type을 찾는 DispatcherServelet이 요청을 인터셉트

3. @ResponseBody를 이용하여 Client에게 Json 형태로 데이터 반환

Controller 패키지 생성 후 내부에 Controller 클래스 생성!

내부코드

@Controller : Controller임을 알려주는 어노테이션

@ResponseBody : Java 객체HTTP 요청 응답내용의 body 내용으로 매핑하여 클라이언트로 전송

@RequestBody : HTTP 요청의 body 내용Java 객체로 매핑하여 받음

@RequestMapping : 특정 URI로 들어온 요청에 대해 특정 메소드와 매핑함

우클릭 > Run As > Spring Boot App 으로 실행하기

기본 포트인 8080으로 접속했는데, 계속 http://localhost:8080/login 으로 넘어가게 된다

아마 프로젝트 생성할 때, Spring Security를 추가해서 그런것 같다.

콘솔창에 출력된 비밀번호

Username 부분에 "user"를 입력하고 Spring 콘솔 창에 출력된 비밀번호를 넣어주면 된다

@RequestMapping에 따라 루트 "/"에는 root_home() 메소드, "/sub"에는 sub_home() 메소드가 실행된걸 확인할 수 있다

 

RestController(Spring Restful Controller)

  • @Controller에 @ResponseBody가 더해진 형태
  • RESTful 웹 서비스에서 사용되는 특수 컨트롤러

1. Client가 URI 형식으로 웹 서비스에 요청 보냄

2. Mapping되는 Handler와 해당 Type을 찾는 DispatcherServelet이 요청을 인터셉트

3. RestController가 해당 요청을 처리하고 데이터를 반환

@Controller부분에 @RestController 어노테이션을 사용하고 @ResponseBody를 빼주면 된다

 

[참조]

https://devlogofchris.tistory.com/40

https://mungto.tistory.com/436

https://cheershennah.tistory.com/179

https://4urdev.tistory.com/45?category=761752

https://wondongho.tistory.com/76

https://devham76.github.io/spring/Spring-controllerRestController/

 

'프로젝트 > Eggo (Mobile App)' 카테고리의 다른 글

[Spring] 6. 응답표준 (1)  (0) 2022.04.29
[Spring] 5. Mapper.java와 Mapper.xml 작성  (0) 2022.04.26
[Spring] 4. Service 작성  (0) 2022.04.15
[Spring] 3. DTO 작성  (0) 2022.03.30
[Spring] 1. Gradle 프로젝트 생성  (0) 2022.03.28
Comments