Spring 주해 자동 조립 과정 분석 실현
1.@Autowireda.역할 대상:(홈 페이지 설명)
1. You can apply the @Autowired annotation to constructors:
2.you can also apply the @Autowired annotation to "traditional" setter methods:
3.You can also apply the annotation to methods with arbitrary names and/or multiple arguments:
4.You can apply @Autowired to fields as well and even mix it with constructors:
5.It is also possible to provide all beans of a particular type from the ApplicationContext by adding the annotation to a field or method that expects an array of that type:
6.타 입 된 맵 도 예 상 된 키 유형 이 String 인 경우 자동 유선 으로 사용 할 수 있 습 니 다.맵 값 은 예 상 된 유형의 모든 콩 을 포함 하고 키 에는 해당 하 는 bean 이름 이 포 함 됩 니 다.등
요약 하면 구조 기,set 방법,임 의 방법 과 속성,배열,String 유형의 Map 등 이 있 습 니 다.
Notes:1.@Autowired 는 기본적으로 유형 별로 조립 합 니 다(이 주 해 는 업 스프링 에 속 합 니 다).기본 적 인 상황 에서 의존 대상 이 존재 해 야 합 니 다.null 값 을 허용 하려 면 required 속성 을 false 로 설정 할 수 있 습 니 다.
2.@qualifier 와 공동으로 사용 할 수 있 습 니 다.대상 유형 과 이름 이 충돌 할 때 이 주 해 는 특정한 대상 을 지정 하 는 데 사용 할 수 있 습 니 다.
@Autowired()
@Qualifier("cat")
id="cat"의 beanb 를 찾 을 수 있 습 니 다.기능:클래스 구성원 변수,방법 및 구조 함 수 를 표시 하여 자동 조립 작업 을 완성 할 수 있 습 니 다.@Autowired 의 사용 을 통 해 set,get 방법 을 제거 합 니 다.2.@Resource.기능:@Resource 의 역할 은@Autowired 에 해당 합 니 다.@Autowired 는 by Type 에 따라 자동 으로 주입 되 지만@Resource 는 기본적으로 by Name 에 따라 자동 으로 주입 됩 니 다.
@Resource 는 두 가지 속성 이 비교적 중요 합 니 다.name 과 type 으로 나 뉘 는데 Spring 은@Resource 주해 의 name 속성 을 bean 의 이름 으로 해석 하고 type 속성 은 bean 의 유형 으로 해석 합 니 다.따라서 name 속성 을 사용 하면 by Name 의 자동 주입 정책 을 사용 하고 type 속성 을 사용 할 때 by Type 자동 주입 정책 을 사용 합 니 다.name 도 지정 하지 않 고 type 속성 도 지정 하지 않 으 면 반사 체 제 를 통 해 by Name 자동 주입 정책 을 사용 합 니 다.
3.@Requireda.기능:@Required 주석 은 bean 속성 에 적용 되 는 setter 방법 입 니 다.이것 은 영향 을 받 은 bean 속성 이 설정 할 때 XML 설정 파일 에 넣 어야 한 다 는 것 을 나타 냅 니 다.그렇지 않 으 면 용기 에 BeanInitialization Exception 이상 을 던 집 니 다.다음은@Required 주석 을 사용 하 는 예제 입 니 다.
이것 은@Required 에 대한 좋 은 해석 과 예 가 있 습 니 다.
@Autowired 사용 후의 장점
원래 우 리 는 수 동 으로 주입 한 후에 야 employee 대상 을 사용 할 수 있 었 다.
<bean> <property name="employee" ref="employee"/>
수 동 주입 을 하지 않 으 면 테스트 코드 에서 employee 대상 을 가 져 오지 않 습 니 다.@Autowired 사용 후
수 동 주입 필요 없어 요.
<bean id="car" class="com.ding.pojo.Car"/>
속성 상 으로 만@Autowired 주석 표 시 를 진행 합 니 다.테스트 클래스 에서 직접 호출 가능:
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Car car = (Car) context.getBean("car");
car.getOwner().MyEmployment();
}
}
시스템 은 먼저 bean 중의 class 유형 에 따라 확인 한 다음 에 bean 중의 id 이름과 확인 한 다음 에 정 해진 주입 대상 을 확정 합 니 다.여러 bean 의 이름 이 다 르 고 유형 이 같 으 면 이 주석 은 유효 하지 않 습 니 다.(@Qualifier 를 사용 하여 유일 하 게 지정 가능)예 를 들 면:
같은 코드 를 실행 하면 다음 과 같은 오 류 를 보고 합 니 다.
이 때@Qualifier 주석 을 추가 하면 코드 를 정상적으로 컴 파일 할 수 있 습 니 다.
실행 결과:
공유 내용 에 문제 가 있 는 부분 이 있 으 면 더 지적 해 주 십시오.방문 해 주 셔 서 감사합니다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.