-
@Autowired @Resource @InjectJAVA 2021. 8. 18. 17:03
@Autowired @Resource @Inject
@Autowired @Resource @Inject 의존 Spring Java Javax 사용 가능 위치 - 필드
- 생성자
- setter- 필드
- 파라미터가 한 개인 setter- 필드
- 생성자
- setterBean 검색
우선순위타입 -> 이름 이름 -> 타입 타입 -> 이름 Bean 강제 지정 @Autowired
@Qualifier("ID")@Resource(name="ID") @Inject
@Named("ID")Bean 없을 경우 @Autowired(required=false) 처리하면 예외 발생 방지 예외 발생 예외 발생 @Inject 와 @Resource는 JSR 에 실려있는 자바 기존의 어노테이션
@Autowired 는 스프링에서 등장한 어노테이션. 따라서 스프링 이외에서는 사용할 수 없다.
만약 프로젝트를 스프링에서 다른 프레임워크로 바꿀 경우가 있다면
@Autowired 보다 @Inject 나 @Resource 를 써야한다.
다만 이 경우는 거의 없다.
@Resource private BoardMapper boardMapper //boardMapper 라는 이름으로 연결됨 @Resource(name="")로 이름지정가능 @Autowired private BoardMapper boardMapper //BoardMapper 인 타입으로 연결됨 @Inject private BoardMapper boardMapper //BoardMapper 인 타입으로 연결됨
이름?
@Repository("이름지정가능")
DB와 상호작용하는 Bean 이라고 등록한 것이다.
이 어노테이션으로 DI(의존성주입)을한다.
@Mapper
mapper.xml 과 이름을 매핑시키면
mapper.xml CRUD 태그의 id 와 메서드의 명이 같을 경우 해당 xml 의 설정을 사용해 DB에 접근할 수 있다.
//인터페이스 @Repository("memberMapper") @Mapper public interface MemberMapper {}
@Service("이름지정가능")
@Repository 로 DB 데이터계층의 일을 여기서 사용한다.
@Resource 를 사용해 이름으로 먼저 Bean 항목을 찾고 있는데 (name="") 으로 직접 그 이름을 지정할 수 있다.
이름은 @Repository("이름") 로 지정되었다.
@Service("com.example.memboard.service.MemberService") public class MemberService { @Resource(name="memberMapper") MemberMapper memberMapper; }
'JAVA' 카테고리의 다른 글
[spring] mybatis: sqlSession&xml 방법 v.s 인터페이스&xml방법 (0) 2021.08.18 [spring] Starter Project,Legacy Project : xml Mapper 설정 차이 (0) 2021.08.18 [spring] resultMap 사용하기 (0) 2021.08.17 [spring] ORA-00911: invalid character 오류 (0) 2021.08.17 [ajax] 비동기 form 사용하기 (0) 2021.08.16