오랜만에 스프링 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 프로젝트 구조와 어노테이션에 대해서 정리했습니다.
오랜만에 보는 거라 처음에는 많이 헤맸는데 보다 보니까 기억이 조금씩 나서 다행이네요ㅎㅎㅎ
이번엔 잊어버리지 않게 정리해두고 계속 보려고 포스팅했습니다. 열공하세요! 😊
'Back-End > Spring' 카테고리의 다른 글
[Spring/스프링] Spring MVC JDK, Java, Servlet 버전 변경 및 업그레이드 방법 (1) | 2021.05.18 |
---|