5. Springboot 주석: @ service @ Repository @ Component

1. @ Service + @ Autowired 는 service 류 인 스 턴 스 를 주입 하 는 데 사 용 됩 니 다. 예 를 들 어 contrller 류 에 서 는 service 류 의 인 스 턴 스 가 특정한 방법 을 호출 해 야 합 니 다. 예전 에는 Spring 의 setter 와 프로필 이 userservice 인 스 턴 스 를 주입 해 야 했 는데 지금 은 @ Autowired 와 @ Service 라 는 두 개의 주석 만 있 으 면 userService 의 인 스 턴 스 를 얻 을 수 있 습 니 다.
//controller   
public class UserController {   
    @Autowired
    private UserService userService;
	userservice.addUser();
}

//service     
@Service(value = "userService")
public class UserServiceImpl implements UserService {
               //  
}

2. @ Repository + @ Autowired 가 dao 류 를 주입 하 는 인 스 턴 스 다음 예 에서 두 사람 이 결합 하면 userdao 인 스 턴 스 를 얻 을 수 있 습 니 다.
//service     
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;
    userDao.insert(user);
}

//dao     
@Repository(value="userDao");
public class UserDaoImpl implements UserDao{
              //  
}  

3. @ Component + @ Autowired 는 일반 클래스 의 인 스 턴 스 를 가 져 오 는 데 사용 되 는 인 스 턴 스 는 contrller, service, dao 등 클래스 가 일반 클래스 에 속 하지 않 습 니 다 (자신 이 내 린 정의).
public class A{
        @Autowired
         private B b;
         b.print();		
}
@Component
public class B{
         //  
}


4. 인터페이스 에 두 개의 실현 클래스 가 존재 할 때 @ Qualifier 를 사용 하여 어떤 실현 클래스 를 주입 할 지 지정 해 야 합 니 다. 그렇지 않 으 면 생략 하고 @ Autowired 만 쓸 수 있 습 니 다.
@Autowired
@Qualifier("chinese")
private Man man; 

주의사항:
@ Autowired 를 사용 할 때 먼저 용기 에서 해당 유형의 bean 을 조회 합 니 다.
검색 결과 가 딱 하나 라면 이 bean 을 @ Autowired 가 지정 한 데이터 에 설치 합 니 다.
검색 결과 가 하나 가 아니라면 @ Autowired 는 이름 에 따라 찾 습 니 다.
검색 결과 가 비어 있 으 면 이상 을 던 집 니 다.해결 방법 시 required = false 사용

좋은 웹페이지 즐겨찾기