티스토리 뷰
MemberController | MemberService | MemberDAO |
@Controller public class MemberController { private MemberService ms; @RequestMapping(value="/insert") public String memberInsert() { ms = new MemberService(); ms.insert(); return "member/insert"; } } |
public class MemberService { private MemberDAO dao; public void insert() { dao = new MemberDAO(); dao.insert(); } } |
public class MemberDAO { public void insert() { System.out.println("회원정보를 저장했습니다."); } } |
위의 부분들에게 new 생성자를 사용하지 않고 어노테이션을 사용하는 방법이 있습니다.
바로 Autowired와 Component입니다.
@Component는 해당 클래스를 빈으로 등록해줍니다.
즉 <bean class =com.care.MemberDAO" id="dao> 의 의미이기도 하고
MemberDAO dao = new MemberDAO의 의미이기도 합니다.
*스프링에서는 root-context.xml에서 bean을 만들어줄 수 있습니다.
@Autowired는 자동 주입 어노테이션으로 타입을 기준으로 bean을 주입합니다.
*만약 같은 타입의 bean이 2개 이상 있을 경우 이름으로 주입해줍니다.
@Autowired은 getBean("memberDAO",MemberDAO.class)와 같은 의미입니다.
MemberController.java
package com.care.mvc_ex02;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MemberController {
@Autowired
private MemberService ms;
@RequestMapping(value="/insert")
public String memberInsert() {
ms.insert();
return "member/insert";
}
}
@Autowired
private MemberService ms; 의 @Autowired는 MemberService라는 자료형의 빈을 주입하라는 의미입니다.
MemberService.java
package com.care.mvc_ex02;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
@Component
public class MemberService {
@Autowired
@Qualifier("test1DAO")
private MemberDAO dao;
public void insert() {
dao.insert();
}
}
@Component
public class MemberService { 에서 @Component는 MemberService 클래스를 빈으로 등록하란 의미입니다.
<bean class="com.care.mvc_ex02.MemberDAO" id="test1DAO"/>
저는 지금 root-context.xml에 위의 코드를 입력하여 MemberDAO인 빈을 하나 더 만들었습니다.
그렇다면 같은 타입이 bean이 2개 있다는 건데 그때 원하는 bean을 @Qualifier("id명")을 해주어 선택해줍니다.
@Component
public class MemberService { 여기서 @Component는 dao = new MemberDAO();의 역할을 해주었습니다.
@Autowired
@Qualifier("test1DAO")
private MemberDAO dao; 여기에서 @Autowired은 자료형을 기분으로 bean을 주입, 같은 타입의 bean이 두개있으므로 @Qualifier("test1DAO")로 id가 test1DAO인 bean을 주입하라는 뜻입니다.
MemberDAO.java
package com.care.mvc_ex02;
import org.springframework.stereotype.Component;
@Component
public class MemberDAO {
public void insert() {
System.out.println("회원정보를 저장했습니다.");
}
}
@Component
public class MemberDAO { 여기서는 @Component만 설정해주면 되어 MemberDAO클래스를 빈으로 등록했습니다.
'Spring' 카테고리의 다른 글
스프링_@RequestParam 간단하게 사용해보기 (0) | 2021.05.25 |
---|---|
스프링_Annotation(@RequestMapping,@GetMapping,@PostMapping)을 이용하여 더 짧고 간단하게 get,Post방식으로 보내기 (0) | 2021.05.25 |
스프링_post로 보내기 get으로 보내기 (0) | 2021.05.25 |
스프링_컨트롤러를 한번 사용해보기 (0) | 2021.05.21 |
스프링_mv2로 명령어를 지정해 사용해보기/내용 추가 기능 (0) | 2021.05.21 |
- Total
- Today
- Yesterday
- link href
- jsp
- 정보산업처리기사
- forward
- div
- Margin
- application
- NAV
- span
- 실기
- id
- dl
- 독학
- padding
- 합격
- session
- Declaration
- Expression
- this.
- RequestDispatcher
- 자격증
- request
- 정처기
- Redirect
- CLASS
- pageContext
- 정처산기
- scriptlet
- getParameter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |