Back-End/Spring

[스프링/Spring] Spring MVC 기초

728x90

오랜만에 스프링 MVC를 공부했는데 다 까먹어서 오늘 공부한 기본적인 개념만 정리해보려 합니다

 

첫 번째로 스프링 MVC 프로젝트의 기본적인 구조입니다.

 

중요한 부분은 servlet-context.xml web.xml 파일입니다.

 

servlet-context.xml 파일은 resources 설정과 viewResolver를 설정하고,

프로젝트에 필요한 빈 객체를 생성하는 스프링 컨테이너입니다.

 

web.xml 파일은 DispatcherServlet을 등록하고 매핑을 해주는 웹 설정 파일입니다.

 

다음은 Controller 영역입니다.

Controller는 사용자의 요청을 실제로 처리하는 영역이라고 생각하시면 됩니다.

값을 가지고 view로 가서 실제 사용자들에게 출력을 해주는 역할을 하는 곳입니다.

 

위 코드는 Controller 예제 코드입니다.

@Controller 어노테이션을 써줘서 이 클래스를 컨트롤러로 쓰겠다고 설정을 했고,

@RequestMapping 어노테이션을 써서 "/login"이라는 요청이 발생하면 login() 메서드를 실행하게 됩니다.

model객체에 값을 담아서 login.jsp로 반환해주는 코드입니다.

return "login"이라고 작성한 이유는 servlet-context.xml에서  

ViewResolver로 설정을 해줬기 때문에 login.jsp로 인식해서 이동하게 됩니다.

 

 

 

다음 예제는 서비스 객체와 Dao 객체를 사용한 프로젝트입니다.

프로젝트가 동작하는 구조는 대략 알게 되었기 때문에 두 번째 예제에서는 어노테이션을 중심으로 정리해보려 합니다^^

 

<MemberController.java> 파일입니다.

클래스명 위에 @Controller를 써줘서 컨트롤러로 사용하겠다고 정의를 해놨고,

@RequestMapping을 사용해서 View로 넘어갈 수 있도록 설정해놨습니다.

그리고 이 코드에선 @Autowired를 사용해서 MemberService 객체를 자동 주입하고 있습니다.

어디서 어떤 방법으로 생성된 객체인지 바로 다음 코드에서 확인해 보겠습니다^^

 

 

<MemberService.java> 파일입니다.

<MemberService.java> 파일에서 어노테이션을 통해서 MemberService 객체를 생성하고 있습니다.

@Service, @Component, @Repository 3가지 어노테이션을 통해 객체를 생성할 수 있고, 

자동으로 스프링 컨테이너에 객체를 생성해주는 어노테이션입니다.

(xml파일에 <bean id="이름" class="경로"/>을 따로 지정하지 않아도 돼서 코드가 간결해짐! 매우 중요!) 

모두 같은 의미는 가지는 어노테이션입니다. 

아래 코드는 서비스 객체이기 때문에 @Service를 사용해서 객체를 생성해볼게요.ㅎㅎ

객체를 생성하면 컨트롤러에서 @Autowired를 통해 어디서나 값을 주입받을 수 있습니다!!

<MemberService.java>에서도 @Autowired를 사용해서 dao객체를 주입받고 있네요

 

 

 

<MemberDao.java>  파일은 @Component를 통해서 객체를 생성했네요ㅎㅎ

<MemberService.java> 코드를 보면 @Autowired를 사용해서 생성한 객체를 주입받는 걸 확인할 수 있습니다.ㅎㅎ!

 

오늘은 진짜 간단하게 스프링 MVC 프로젝트 구조와 어노테이션에 대해서 정리했습니다.

오랜만에 보는 거라 처음에는 많이 헤맸는데 보다 보니까 기억이 조금씩 나서 다행이네요ㅎㅎㅎ

이번엔 잊어버리지 않게 정리해두고 계속 보려고 포스팅했습니다. 열공하세요! 😊

 

728x90