1 / 9

Spring Bean 의 Wiring 에 대한 정리

Spring Bean 의 Wiring 에 대한 정리. - 스프링 빈의 의존성을 설정하는 XML 방법 - Annotation 설정. 천은진. 스프링 빈의 의존성을 설정하는 XML 방법. 생성자 방식. 생성자를 통해 의존하는 객체를 전달 받는 경우. public class WriteArticleServicempl( private ArticleDao articleDao; public WriteArticleServicempl(ArticleDao articleDao){

robertblake
Download Presentation

Spring Bean 의 Wiring 에 대한 정리

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spring Bean의 Wiring에대한정리 - 스프링빈의의존성을설정하는 XML 방법 - Annotation 설정 천은진

  2. 스프링빈의의존성을설정하는 XML 방법 생성자 방식 생성자를 통해 의존하는 객체를 전달 받는 경우 publicclass WriteArticleServicempl( private ArticleDao articleDao; public WriteArticleServicempl(ArticleDao articleDao){ this.articleDao = articleDao; } publicvoid write(Article article){ .... articleDao.insert(article); } } <constructor-arg> 태그를 이용->의존하는 객체전달 • <construtor-arg> • <value> 10 <value/> • </construtor-arg> • <construtor-arg value “10”/> • <beanname = "writeArticleService" • class ="madvirus.spring.WriteArticleServicelmpl"/> • <construtor-arg> • <refbeen = "articleDao"/> • </construtor-arg> • <construtor-arg refbeen = "articleDao"/> • </bean>

  3. 스프링빈의의존성을설정하는 XML 방법 프로퍼티 설정 방식 • setXXXX()형태의 설정 메서드를 사용해서 필요한 객체와 값을 전달 받음 publicclass WriteArticleServicempl implement WriteArticleService( private ArticleDao articleDao; publicvoidsetArticleDao(Article articleDao){ this.articleDao = articleDao; } } • setXXXX()형태의 메서드에서 프로퍼티 이름은 XXXX가 됨 <beanname = "writeArticleService" class ="madvirus.spring.WriteArticleServicelmpl"/> <propertyname = "articleDao"> <refbeen = "mysqlArticleDao"/> </property> </bean>

  4. 스프링빈의의존성을설정하는 XML 방법 XML 네임스페이스를 이용 •<property>태그를 사용하지 않고 좀 더 간단히 설정 <beansxmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <beanid="monitor"class = "SystemMonitor" p:periodTime = "10" p:sender-ref = "smsSender" /> </bean> <beanid="smsSender"class ="SmsSender" /> </beans>

  5. Annotation 설정 @Required • org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor • 필수 프로퍼티를 명시할 때 사용 • 지정하려면 먼저 프로퍼티 설정 메서드에 @Required을 선언 package com.cejing.ex; publicclass Camera { privateintnumber; @Required publicvoid setNumver(int number){ this.number =number; } } <beanclass = "org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/> <beanid="camera"class = "Camera"/> <!-- number 프로퍼티에 @Required 어노페이션 적용 따라서 , number 프로퍼티를 설정하지 않을 경우 예외 발생 --> <propertyname ="number"value="1"/> </bean>

  6. Annotation 설정 @Required <?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <context:annotation-config/> </beans> <context:annotation-config> - RequiredAnnotationBeanPostProcessor : @Required 어노테이션 처리 - AutoWiredAnnotationBeanPostProcessor : @Autowired 어노테이션 처리 - CommonAnnotationBeanPostProcessor : @Resource, @PostConstruct, @PreDestroy 어노테이션 처리 - ConfigurationClassPostProcessor : @Configuration 어노테이션 처리

  7. Annotation 설정 @Autowired • org.springframework.beans.factory.annotation.AutowiredAnnotationBeanProcessor • 프로퍼티 자동 설정 기능을 제공 • 생성자, 필드, 메서드의 세 곳에 적용 가능 @Autowired(required=false) 여러 개의 생성자에 @Autowired 어노테이션을 적용할 때에는 한 개의 생성자에 적용된 @Autowired 어노테이션만 required 속성값이 true여야 하며 나머지 생성자에 적용되는 @Autowired 어노테이션의 required 속성값은 false이어야 한다

  8. Annotation 설정 @Qualifier • org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor • @Autowired 어노테이션과 함께 사용 • 자동 연결될 빈 객체의 수식어를 값으로 갖는다 package com.cejing.ex; publicclass Camera implementsCamera{ @Autowired @Qualifier("main") privateintnumber; } <beanid="camera"class = "Camera"/> <qualifiervalue ="main"/> </bean>

  9. Annotation 설정 • org.springframework.beans.factory.annotation.CommonAnnotationBeanPostProcessor @Resource • javax.annotation 패키지에 위치 • 필요로 하는 자원을 자동 연결할 때 사용 @PostConstruct / @PreDestroy • • @PostConstruct 의존하는 객체를 설정한 이후에 • 초기화 작업을 수행할 메서드에 적용 • • @PreDestroy 컨테이너에서 개게를 제거하기 전에 호출 될 메서드에 적용 • -> 스프링 설정 파일에서 init-mehtod 속성과 destroy-method속성을 이용하여 • 명시한 메서드와 동일한 시점에서 실행

More Related