머리말
봄에 인스턴스를 주입하는 방법에는 여러 가지가 있지만 초기화 순서가 다르기 때문에 주석을 기반으로 한 주입 방법은 성공적으로 올바르게 주입되지 않기 쉽습니다.
이 기사는 실제 프로젝트에서 봄 관리 콩을 추출하는 동적 인 기반 방법을 소개합니다. 아래에서 많이 말하지 않겠습니다. 자세한 소개를 함께 살펴 보겠습니다.
1. 라벨링에 따라 인스턴스를 주입합니다
콩이 초기화되면 의존하는 객체를 초기화해야합니다. 주입 된 객체가 현재 객체보다 나중에 초기화되면 주입 된 물체가 무효화됩니다.
1.1 @autowired
스프링 관리 콩을 유형별로로드하십시오. 기본적으로 콩이 존재해야합니다. Bean이 Null이면 필요한 속성을 False로 설정할 수 있습니다. 구체적인 자세한 내용은 소스 코드를 참조하십시오.
@TARGET ({ElementType.Constructor, ElementType.Method, ElementType.Parameter, ElementType.field, ElementType.annotation_type})@retention (rendentedPolicy.Runtime)@DocumentEdPublic@Interface Autowired {/*** 선언이 필요했는지 여부에 의존합니다. *{@code true}.*/boolean required () 기본값;}명령에 따라 Bean을 주입 해야하는 경우 @Qualifier를 사용하여 이름을 표시해야합니다. 코드 예제는 다음과 같습니다.
@autwired@Qualifier ( "beanname") private beantype beanobj;
응용 프로그램 범위 : 위의 변수, 세터 메소드 및 생성자.
출처 : 스프링 프레임 워크
1.2 @inject
javax.inject.inject에서 제공하면 유형에 따라 자동으로 조립됩니다. 이름에 따라 전송 해야하는 경우 @Named와 함께 사용해야합니다. 이 사용법은 Spring Framework에서 제공하는 @autowired와 매우 유사합니다.
응용 프로그램 범위 : 변수, 세터 메소드, 생성자
출처 : JSR330 사양 Javax 확장 패키지
Code example:
@inject@name ( "beanname") private beantype bean;
1.3 @Resource
기본값은 이름 별 어셈블리 주입입니다. 이름과 일치하는 콩을 찾을 수없는 경우에만 유형별로 주입합니다. JDK 1.6 후에 제공됩니다.
응용 프로그램 범위 : 변수 및 세터 방법에 적용 할 수 있습니다.
출처 : JDK 1.6 이후 제공
코드 사용 예 :
@Resource (이름 = "MyBeanName") 개인 BeanType Bean;
2. 동적 주입 방법
아이디어 : ApplicationContextAware를 사용하여 ApplicationContext의 참조를 얻은 다음 ApplicationContext를 기반으로 객체를 동적으로 얻습니다.
구현 코드는 다음과 같습니다.
@ComponentPublic Class SpringContextUtil ApplicationContextAware {// Spring Application Context 환경 개인 정적 ApplicationContext ApplicationContext;/** ApplicationContextAware 인터페이스의 콜백 메소드 구현 및 컨텍스트 환경을 설정하고 @param ApplicationContext*/public void setApplicationContext (ApplicationContext) ApplicationContext;}/*** @return ApplicationContext*/public static applicationcontext getApplicationContext () {return ApplicationContext;}/*** get object ** @param name*@return 객체*@throws beansexception*/public static 객체 getbean (strows name) b그런 다음 코드에서 필요한 Bean 인스턴스를 동적으로 얻을 수 있습니다.
beantype bean = SpringContextUtil.getBean ( "BeanName")
사용하기가 쉽지 않습니까?
요약
여기서 우리는 콩을 봄에 주입하는 다양한 방법을 각각 장점과 단점으로 요약하며,이를 사용하도록 선택할 수 있습니다.
좋아, 위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.