@Autowired 의 사용--Spring 규범 해석,구조 함수 에 대한 주석 추천
코드 를 작성 할 때@Autowired 주 해 를 사용 할 때 IDE 보고서 의 경 고 를 발 견 했 습 니 다.다음 과 같 습 니 다.
Spring Team recommends "Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies.
Spring 은 항상 bean 에서 구조 함 수 를 사용 하여 의존 주입 을 만 드 는 것 을 권장 합 니 다.항상 단언 을 사용 하여 강제로 의존한다.
그럼 왜 일 까요?
둘째.
자바 의 기본 점 을 정리 할 수 있 습 니 다.부모 클래스 를 고려 하지 않 고 초기 화 된 순서 정적 변수 나 정적 구문 블록–>인 스 턴 스 변수 또는 구문 블록 초기 화–>구조 방법–>@Autowired 정적 변수 나 정적 구문 블록 의 초기 화 순 서 는 위 에서 아래로 순서 입 니 다.
셋.
네,위 에 깔 린 쿠션 이 있 습 니 다.아래 코드 를 보 겠 습 니 다.
@Autowired
private User user;
private School school;
public UserServiceImpl(){
this.school.id = user.getSchoolId();
}
자바 가 먼저 구조 방법 을 실행 하기 때문에 this.school=user.getSchool();빈 포인터 이상
해결 방법 은 구조 기 를 사용 하여 주입 하 는 것 이다.
private User user;
private String schoolId;
@Autowired
public UserServiceImpl(User user){
this.user = user;
this.schoolId = user.getSchoolId();
}
넷.
그리고 만약 당신 이 하나의 예 모드 라면(bean 은@scope 를 쓰 지 않 았 고 기본 값 은 하나의 예 입 니 다)
그러면 spring 은 bean 의 성명 에 final 을 추가 하 라 고 건의 합 니 다.이 해석 은 간단 하고 거 칠 어 집 니 다.
게다가 final 은 프로그램 이 시 작 될 때 한 번 만 초기 화 되 고 프로그램 이 실 행 될 때 변 하지 않 기 때문이다.
정부의 건의 예
private final EnterpriseDbService service;
@Autowired
public EnterpriseDbController(EnterpriseDbService service) {
this.service = service;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바를 잡아버려 (1)나의 생각을 적고 복습을 해버릴 것 이다 책을 펼치자 마자 나오는 설명인데 그 안의 내용을 실행하게 된다 라고 설명을 해준다 아래 소스코드와 실행 결과로 위에 설명을 보충해준다 사칙연산과 나머지를 계산하는 것 비교연...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.