봄 (1) 콩 코멘트

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/m0_38060977/article/details/102756495

@Autowired :

자동 주입

  1. 컨테이너에 구성 요소의 종류에 따라 해당 기본 우선 순위를 찾기 : applicationContext.getBean (BookDao.class) 할당 찾을 수 있습니다
  2. 동일한 타입의 복수의 구성 요소가 발견되면, 그 ID와 속성 이름 컨테이너 조립체를 찾는
  3. @Qualifier ( "bookDao") : 사용 @Qualifier ID 지정된 부품 조립 대신 속성 이름을 사용하는 필요
  4. 기본 자동 조립 좋은 속성을 지정해야합니다, 오류가 없을 것,
    당신은 @Autowired를 사용할 수 있습니다 (= 거짓 필수);
  5. 지원 @primary

자동 조립 방법 및 생성자
1 기본값 IOC 컨테이너 조립체를 첨가 용기 인수없이 생성자가 객체를 생성하기 시작한다 호출 이러한 초기화하는 것에 할당 작업
2 방법 표시 위치] @Bean + 방법 파라미터 상기 용기로부터 파라미터 획득, 기본값은 @Autowired 효과를 쓰지 않고는 동일하다 자동 조립 될 수있다

    @Bean//@Autowired可省略
	public Color color(Car car){
		Color color = new Color();
		color.setCar(car);
		return color;
	}

3 생성자에 표시된] 성분 만 생성자 매개 변수 인 경우,이 파라미터는 @Autowired있다 생성자는 생략 될 수 있고, 또는 구성 요소의 매개 변수의 위치가 자동으로 용기로부터 획득 될 수있다

	//如果只有一个构造器,@Autowired可以省略
	public Boss(Car car){
		this.car = car;
		System.out.println("Boss...有参构造器");
	}

@자원:

  • 및 자동 조립 @Autowired로서 기능 할 수 있으며, 구성 요소의 이름에 따라 조립 기본적;
  • 어떤 지원 @primary 기능, @Autowired는 지원 (= 거짓 reqiured 없음)
  • 콩의 종류에 따라 조립 때이 일치하는 이름을 찾을 수 없습니다. 그러나 지정된 경우 이름 속성의 경우는 있습니다 만합니다 이름으로 조립

@Resource 조립 순서 :
① 이름과 유형 모두, Spring 컨텍스트에서 조립 된 콩의 고유 한 일치를 찾을 경우, 예외가 발생 찾을 수 없습니다.
② 이름이 지정된 경우, 문맥에서 예외가 발생합니다 찾을 수없는, 조립 이름 (ID) 경기 콩을 찾을 수 있습니다.
③ 유형이 지정된 경우, 문맥에서, 조립의 고유 빈 유사 일치를 찾을 예외가 발생합니다, 찾을 수 이상을 찾을 수 없습니다.
④도 이름을 지정하지 않고는 타입 지정 자동 조립 요소 별명 방식에 의한 경우에, 일치가 없을 경우 일치가 자동 조립되면, 경기는 백 오프 기본 유형이있다.
byType와 @Autowired 항에 @Resource 동등한 효과가 있지만, 자동 주입 @Autowired

@구성 요소

구성 요소는 사용하지 않는 것이 좋습니다 @, 클래스의 머리에 배치 할 수 있습니다 구성 요소 주석 @ Spring이 관리하는 모든 구성 요소를 일반적인 형태는, @Component 있습니다.

@제어 장치

해당 프리젠 테이션 계층 콩
@Controller 후 당신은 우리가 Spring 컨테이너 관리에 UserAction해야한다고 말했다, UserAction을 식별하기 위해 주석을 사용하여 Spring 컨테이너에서 행동의 "userAction"의 이름이 될 것입니다, 이름이 촬영 한 클래스 이름 UserAction을 기반으로합니다. 참고 : 값 @Controller @Controller [], 클래스의 소문자 첫 글자에서 빈 클래스 이름에 대한 기본 이름을 지정하지 않으면 경우 지정된 값 [@Controller (값 = "UserAction")] 또는 [@Controller ( "UserAction ")]를 선택한 다음 빈의 이름으로 값을 사용합니다.
UserAction 범위 (@ "프로토 타입") 동작은 지정된 범위의 프로토 타입을 나타내며, 또한 본원 @Scope 주석을 사용 컨테이너가 이용 될 수있는 범위 = "프로토 타입"되도록 모든 요청은 동작하기 위해 별도 프로세스 갖는 스트럿을 피하기를 스레드 안전 문제에 액션. 봄 기본 SCOP

@일 순위

때 여러 후보 콩 자동 조립, @primary 콩 그렇지 않으면 예외를 슬로우하는 사람들을 위해 첫 번째 선택이 될 것으로 주석 때

@콩

주로 @Configuration 주석 클래스에서 사용되는 메소드 레벨에 댓글,인가, 또한 @Component 주석 클래스에서 사용할 수 있습니다. 빈 ID를 추가하는 방법 이름
라이프 사이클 콜백을 수락

public class Foo {
    public void init() {
        // initialization logic
    }
}

public class Bar {
    public void cleanup() {
        // destruction logic
    }
}

@Configuration
public class AppConfig {

    @Bean(initMethod = "init")
    public Foo foo() {
        return new Foo();
    }

    @Bean(destroyMethod = "cleanup")
    public Bar bar() {
        return new Bar();
    }

}

콩 별칭

    @Bean(name = { "dataSource", "subsystemA-dataSource", "subsystemB-dataSource" })
    public DataSource dataSource() {
        // instantiate, configure and return DataSource bean...
    }

@Configuration

반복 @Bean 수정 방법이라는 구성 클래스, 같은 해 오브젝트 반환
특정 참조 : https://www.cnblogs.com/duanxz/p/7493276.html

추천 도서

  1. 내가 무지 남용 인터뷰했다, 내가 봄 @Configuration에 이해하지 않기 때문에 밝혀졌다

참고

추천

출처blog.csdn.net/m0_38060977/article/details/102756495