728x90
반응형
Spring MVC Model DI
- 스프링 MVC 모델에서 DI 방식은 2가지가 존재하는데, 기존에 알고있는 XML 방식과 Spring에서 대표적으로 사용하는 Annotation 방식이 있다. 예제를 통해 살펴보자
[ 예제 - 어노테이션으로 의존 객체 만들기 ]
- Work.java 하나의 클래스를 미리 먼저 만들어 두고 Controller에서 Work 클래스의 객체를 만들어서 의존 주입 작업을 해보자
1) DIController.java > @Autowired
- @Autowired: 아래의 변수에 해당 클래스의 객체를 만들어서 의존 주입 하는 작업
@Controller
public class DIController {
@Autowired
private Work work;
@RequestMapping(value = "/di/di.action", method = { RequestMethod.GET })
public String di(HttpServletRequest req, HttpServletResponse resp, HttpSession session) {
// 업무 구현 -> 의존 객체 필요 -> 위에 @Autowired 선언
String result = work.doit();
req.setAttribute("result", result);
return "di/di";
}
}
2) Work.java > @Service, @Repository, @Component
- 의존 객체로서의 자격 부여 하기
- 아래 어노테이션을 사용해야 Controller의 @Autowired에 의해서 호출 당할 자격이 생긴다.
- 3가지 모두 동일하게 동작하며 각각 이름이 달리 존재하는 이유는 의미를 구분하기 위해서 이다.
이름 | 설명 |
@Service | 서비스 객체(중간 단계 업무 객체) |
@Repository | 저장소 객체(DAO) |
@Component | 일반 객체(모듈) |
@Component
public class Work { // DIController의 의존객체
public String doit() {
System.out.println("메소드 호출");
return "의존 객체의 반환값";
}
}
3) di.jsp
- DIController.java에서 의존 객체 Work의 반환값으로 넘긴 result 받아서 웹 페이지에 출력하기
<h1 class="page-header">의존 주입</h1>
<div>result: ${ result }</div>
- 결과 페이지
728x90
반응형
'교육 > Spring' 카테고리의 다른 글
Spring 개발자 수업 97일차(3) - MyBatis(INSERT, DELETE, UPDATE) (0) | 2021.08.13 |
---|---|
Spring 개발자 수업 97일차(2) - 간단한 메모장 만들기 (0) | 2021.08.12 |
Spring 개발자 수업 96일차(2) - 데이터 전송 + 데이터 수신하기 (0) | 2021.08.11 |
Spring 개발자 수업 96일차(1) - STS 다운로드 및 초기 설정하기 (0) | 2021.08.11 |
Spring 개발자 수업 95일차 - 관점 지향 프로그래밍(AOP) (0) | 2021.08.10 |
댓글