학습 스프링 노트주석(주석)Autowired_Qualifier

Annotation 을 사용 하려 면 XML 프로필 헤더 에 다음 코드 를 추가 해 야 합 니 다.
<?xml version="1.0" encoding="UTF-8"?>
<!-- spring         -->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
           
  <context:annotation-config />
</beans>

 코드 설명:
 
beans 태그 에 xmlns:context="를 추가 해 야 합 니 다.http://www.springframework.org/schema/context속성http://www.springframework.org/schema/context
 
    http://www.springframework.org/schema/context/spring-context-2.5.xsd속성
 
탭 은 다음 네 가지 종 류 를 도입 하여 어떤 코드 가 Annotation 을 사 용 했 는 지 분석 하 는 것 을 의미 합 니 다.
네 가지 유형 은 Autowired Annotation BeanPostProcessor,CommonAnnotation BeanPostProcessor,Persistence Annotation BeanPostProcessor,as well as the foreremented Required Annotation BeanPostProcessor 이다.
 
 
Spring 프레임 워 크 에서@Autowired 탭 을 사용 할 때 기본적으로@Autowired 주석 을 사용 하여 자동 으로 주입 할 때 Spring 용기 에 일치 하 는 후보 Bean 수 는 하나 여야 합 니 다.일치 하 는 Bean 을 찾 을 수 없 을 때,Spring 용 기 는 BeanCreation Exception 이상 을 던 지고,최소한 일치 하 는 Bean 을 가 져 야 한다 고 지적 합 니 다.@Autowired 가 자동 으로 주입 하 는 정책 은 기본적으로 by Type 입 니 다.Spring 용기 에 두 개 이상 의 Bean 이 일치 하면 이상 을 던 집 니 다.Spring 은@Qualifier 주석 을 통 해 Bean 을 주입 하 는 이름 을 지정 할 수 있 도록 합 니 다.그러면 잘못된 의 미 는 제거 되 고 아래 의 방법 으로 이상 을 해결 할 수 있 습 니 다.
@Qualifier("XXX")의 XX 는 Bean 의 이름 이기 때문에@Autowired 와@Qualifier 를 결합 하여 사용 할 때 자동 으로 주입 하 는 정책 이 by Type 에서 by Name 으로 바 뀌 었 습 니 다.
@Autowired 는 구성원 변수,방법 및 구조 함수 에 대해 설명 할 수 있 으 며,@Qualifier 의 레이 블 대상 은 구성원 변수,방법 입 참,구조 함수 입 참 입 니 다.
         @Autowired 가 set 방법 에 쓰 여 있다 면@Qualifier 는 인자 에 써 야 합 니 다.
 
주요 코드 세그먼트 는 다음 과 같 습 니 다(구체 적 인 실현 을 보 려 면 첨부 파일 을 다운로드 하 십시오).
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- spring2.5         -->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
           
  <context:annotation-config />
  
  <!--   @Autowired       ,      bean       -->
  <bean id="udi" class="com.yusj.dao.impl.UserDAOImpl"/>
  <!-- 
    @Autowired       ,     (bean autowire  ) byType ,
              Class,            @Qualifier("name")   ,
     UserServiceImpl setUserDAO   
  -->
  <bean id="udis" class="com.yusj.dao.impl.UserDAOImpl"/>
  
  <bean id="usi" class="com.yusj.service.impl.UserServiceImpl" >
    <!--   ,       property    ,   UserServiceImpl   setUserDAO    @Autowired     -->
  </bean>
  
</beans>

 UserServiceImpl.java
package com.yusj.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

import com.yusj.dao.IUserDAO;
import com.yusj.model.User;
import com.yusj.service.IUserService;

public class UserServiceImpl implements IUserService {
	//       setter,getter  .    Spring    
	private IUserDAO userDAO ; 

	public IUserDAO getUserDAO() {
		return userDAO;
	}
	
	/**
	 *  Annotation Autowired      
	 *  Annotation Qualifier   Autowired      byType  byName
	 * @param userDAO
	 */
	@Autowired
	public void setUserDAO(@Qualifier("udis") IUserDAO userDAO) {
		this.userDAO = userDAO;
	}

	@Override
	public void add(User user) {
		userDAO.save(user);
	}

}

 Test.java
package com.yusj.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.yusj.model.User;
import com.yusj.service.IUserService;

public class Test {

	public static void main(String[] args) {
		
		/**
		 * Spring           ,      ApplicationContext  BeanFactory.
		 * beans        src         XML  
		 *            ,          ,  :com/yusj/xml/beans.xml
		 * 
		 */
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		/**
		 *   beans.xml id="usi" bean         ,           
		 *          beans.xml       
		 * 
		 */
		IUserService service = (IUserService) ctx.getBean("usi");
		//         
		User u = new User();
		u.setUsername("  ");
		u.setPassword("zhangsan");
		//       
		service.add(u);
		/**
		 *     :
		 * user save success...
		 * User [username=  , password=zhangsan]
		 */
	}
}

 
 
 
항목 내 보 내기 첨부 파일 참조,Jar 패키지 포함(내 보 내기->General->File System)

좋은 웹페이지 즐겨찾기