Spring bean 의 주해 주입 의@Autowired 원리 및 사용
개념:
@Autowired 주석 은 클래스 구성원 변수,방법 및 구조 함 수 를 표시 하여 자동 조립 작업 을 완성 할 수 있 습 니 다.@Autowired 의 사용 을 통 해 set,get 방법 을 제거 합 니 다.
@Autowired 를 사용 하기 전에 bean 에 속성 을 설정 할 때 사용 하 는 것 은?
<property name=" " value=" "/>
@Autowired 를 사용 한 후,우 리 는 사용 해 야 할 곳 에@Autowired 를 하나만 사용 하면 됩 니 다.코드 사용:
public interface StudentService {
public boolean login(String username,String password);
}
@Service
public class StudentServiceImpl implements StudentService {
@Override
public boolean login(String username,String password) {
if("crush".equals(username)&&"123456".equals(password)){
System.out.println(" ");
return true;
}
return false;
}
}
@Controller
public class StudentController {
@Autowired
private StudentService studentService;
public void login(){
boolean crush = studentService.login("crush", "123456");
if(crush){
System.out.println("crush"+" !!!!!");
}else{
System.out.println(" ");
}
}
}
테스트:
@Test
public void login(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
StudentController student = applicationContext.getBean("studentController", StudentController.class);
student.login();
}
우 리 는@Autowired 를 사용 한 후에 xml 파일 에 가서 계속 설정 할 필요 가 없습니다.자세 한 정보:
1.@Autowired 를 사용 하 는 현재 클래스 도 spring 용기 에서 위탁 관리 해 야 합 니 다(@Coponent,@Controller,@Service,@reposcory)
2.Public 와 private 가 수식 하 는 필드 는 자동 으로 주입 할 수 있 습 니 다.
3.기본 적 인 상황 에서@Autowired 주 해 를 사용 하 는 속성 은 반드시 조립 되 어야 합 니 다.용기 에서 이 유형의 bean 주입 을 찾 지 못 하면 오류 가 발생 합 니 다.설치 되 지 않 으 면@Autowired 의 required 속성 을 false 로 설정 할 수 있 습 니 다.
4.@Autowired 는 형식 에 기반 한 주입 입 니 다.현재 유형 속성 이 용기 에 빈 만 있다 면 속성 명 은 제한 되 지 않 지만,일반적으로 이니셜 소문 자 규칙 을 따 르 는 것 을 권장 합 니 다.'
5.현재 속성 유형 이 용기 에 여러 개의 Bean 이 있다 면 속성 명 또는@Qualifier 를 통 해 Bean name 을 지정 해 야 합 니 다.
6.@Autowired 는 XXX[],List 에 전 화 를 걸 수 있 습 니 다.이때 용기 에 있 는 모든 XXX 형식의 bean 을 주입 하고 속성 명 은 제약 이 없 지만@Qualifier 를 통 해 지정 한 beanName 을 주입 하 는 bean 을 지정 할 수 있 습 니 다.속성 명 은 제약 이 없습니다.
7.@Autowired 는 맵
2.@Service,@Repository,@Controller,@Component
이 몇 개의 주해 의 의 미 는 모두 같은 것 으로 클래스 나 인터페이스 에 쓰 여 있 으 며 스프링 용기 에 자동 으로 등 록 됩 니 다.
1.@Service 는 업무 계층 구성 요 소 를 표시 하 는 데 사 용 됩 니 다.
2.@Controller 는 제어 층 구성 요 소 를 표시 하 는 데 사 용 됩 니 다(예 를 들 어 struts 의 action).
3.@Repository 는 데이터 액세스 구성 요소,즉 DAO 구성 요 소 를 표시 하 는 데 사 용 됩 니 다.
4.@Component 는 구성 요 소 를 가리 키 며 구성 요소 가 분류 하기 어 려 울 때 이 주 해 를 사용 하여 표시 할 수 있 습 니 다.Spring 용기 에 등록 합 니 다.
쓰다
@Service
public class StudentServiceImpl implements StudentService {
}
@Controller
public class StudentController {
}
그 역할 은 application.xml 파일 에 다음 코드 를 쓰 는 것 과 같다.
<bean id="studentServiceImpl" class="com.crush.service.impl.StudentServiceImpl"/>
<bean id="studentController" class="com.crush.controller.StudentController"/>
물론 주 해 를 적용 하려 면 스 캔 패키지 의 코드 를 적 게 추가 해 야 합 니 다.
<!-- com.crush spring -->
<context:component-scan base-package="com.crush"/>
3.@Bean@Bean 은 하나의 방법,어떤 방법 을 명 확 히 지 시 했 습 니까?-bean 을 만 드 는 방법 을 명 확 히 지시 하고 Spring 용기 관리 에 맡 겼 습 니 다.이 를 통 해 우 리 는 왜@Bean 이 방법의 주석 에 놓 여 있 는 지 알 게 되 었 습 니 다.왜냐하면 그것 은 주석 을 받 는 방법 을 명확 하 게 알려 주 었 기 때 문 입 니 다.당신 은 나 에 게 Bean 을 만들어 서 Spring 용기 에 건 네 주 고 나머지 는 상관 하지 마 세 요.
4.@Configuration
@Configuration 은 설정 클래스 를 정의 하 는 데 사 용 됩 니 다.간단 한 설명 만 있 습 니 다.
Spring 은 현재 두 가지 설정 방식 이 있 습 니 다.하 나 는 xml 파일 설정 에 자바 코드 를 추가 하 는 것 입 니 다.이것 은 Spring 이 태 어 났 을 때 부터 있 었 고 다른 하 나 는 자바 코드 를 완전히 사용 하여 설정 하고 작성 한 것 입 니 다.이것 은 Spring 뒤의 버 전에 서 나 온 것 입 니 다.
Spring 3.0,@Configuration 에서 설정 클래스 를 정의 하 는 데 사 용 됩 니 다.xml 설정 파일 이 주 해 된 클래스 내부 에 하나 이상 의@Bean 주 해 를 받 는 방법 이 포함 되 어 있 습 니 다.이 방법 들 은 AnnotationConfigApplication Context 또는 AnnotationConfigWebApplication Context 류 에 의 해 스 캔 되 고 bean 정 의 를 구축 하여 Spring 용 기 를 초기 화 합 니 다.
이런 방식 은 자바 프로그래머 들 의 사랑 을 더욱 받는다.
@Configuration
public class MyConfig {
}
그리고 이런 방식 은 후속 학습 에서 Spring 소스 코드 에서 매우 많이 사용 된다.5.@Resource
@Resource 의 역할 은@Autowired 에 해당 합 니 다.@Autowired 는 by Type 에 따라 자동 으로 주입 되 고@Resource 는 기본적으로 by Name 에 따라 자동 으로 주입 되 는 것 입 니 다.@리 소스 는 두 가지 속성 이 비교적 중요 합 니 다.name 과 type 으로 나 뉘 는데 Spring 은@리 소스 주해 의 name 속성 을 bean 의 이름 으로 해석 하고 type 속성 은 bean 의 유형 으로 해석 합 니 다.따라서 name 속성 을 사용 하면 by Name 의 자동 주입 정책 을 사용 하고 type 속성 을 사용 할 때 by Type 자동 주입 정책 을 사용 합 니 다.name 도 지정 하지 않 고 type 속성 도 지정 하지 않 으 면 반사 체 제 를 통 해 by Name 자동 주입 정책 을 사용 합 니 다.
@Autowired 와@Resource 의 차이
@Autowired 원리
Spring bean 의 주해 주입 의@Autowired 의 원리 와 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Autowired 원리 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.