Spring JavaConfig이 @Configuration애노테이션으로 변신해서 Spring에 통합된 후에 가장 아쉬웠던 것은 JavaConfig에서는 가능했던 전용 ApplicationContext이 존재하지 않는다는 점이었다. @Configuration이 적용된 자바 클래스 설정만을 사용할 수 있는 간단한 방법이 없었다.

그래서 이런 저런 방법을 이용해서 @Configuration 설정만을 가진 ApplicationContext를 만들어보는 시도도 해봤다.

하지만 이제는 그런 복잡한 방법을 거치지 않고 단독으로 @Configuration 설정만을 사용하는 ApplicationContext를 만들 수 있다. RC2에 추가된 ConfigurationClassApplicationContext를 이용하면 된다.

아래와 같이 자바 클래스로 된 스프링 설정 정보가 있다고 하면,

@Configuration
static class Config {
    @Bean
    public TestBean testBean() {
        TestBean testBean = new TestBean();
        testBean.name = "foo";
        return testBean;
    }
}

이를 사용하는 컨텍스트는 다음과 같이 만들면 된다.

ConfigurationClassApplicationContext ctx =  new ConfigurationClassApplicationContext(Config.class);

생성자에는 하나 이상의 @Configuration 클래스를 사용할 수 있다.

또 다음과 같이 설정을 추가할 수도 있다.

ctx.addConfigurationClass(ConfigWithCustomName.class);

 

@Configuration을 이용한 설정의 특징은 설정정보를 담은 @Configuration 오브젝트 자체가 빈으로도 등록된다는 점이다. 그렇다면 빈 이름은 어떻게 될까? 사실 알 이유는 없다. 빈의 이름을 지정하도록 만들지 않은 것을 봐도 알 수 있듯이, 컨텍스트 설정 이후에 이 @Configuration 빈을 다시 가져다 사용할 필요는 없다. 그래도 호기심에 한번 읽어보고 싶다면 설정용 클래스의 이름을 이용하면 된다. 내부적으로는 BeanDefinitionReaderUtils.BeanDefinitionReaderUtils() 메소드를 이용해서 빈의 이름을 자동으로 생성한다.

 

그렇다면 @Configuration 방식의 컨텍스트만을 가진 애플리케이션을 만들 수 있을까? 만들고자하면 안될 이유는 없겠지만 별로 장점이 없다. 다만 계층형 구조로 컨텍스트를 구성하는 경우에 한 계층은 ConfigurationClassApplicationContext를 사용할 수 있을 것이다. 취향대로 쓰면 될 듯. 웹용으로 사용할 수 있도록 만든 ConfigurationClassWebApplicationContext도 있다.

Related posts:

  1. Spring 3.0 (56) @Bean 사용의 주의사항
  2. Spring 3.0 (58) Static Class를 XML없이 빈으로 등록하기
  3. Spring 3.0.2 모듈/라이브러리 의존관계
  4. Spring 3.0.2 모듈 의존관계
  5. Spring 3.0 (35) Spring 3.0 Reference Document 공개
  6. Spring 3.0 (53) Spring Dependency Matrix 업데이트
  7. Spring 3.0 (7) Spring 3.0 Dependency Matrix
  8. Spring 3.0 (33) JavaConfig의 통합과 변신. 메타-빈(meta-bean) 개념의 등장.
  9. Spring 3.0 EL (Spel)을 이용한 AssertThrows 확장 (1)
  10. Spring 3.0 (38) Spring Reference 업데이트
  11. 미리 보는 Spring 3.0.1의 변경사항
  12. Spring 2.0의 XML확장기능 (2)
  13. Spring 3.0 (46) Spring 3.0 M4 릴리스
  14. Spring 상식퀴즈 (1) – DI 태클하기 해답편
  15. InsideSpring (1) Annotated Factory Method (@Configuration)을 쓰는 4가지 방법 (2)

Facebook comments:

to “Spring 3.0 (54) 드디어 등장한 ConfigurationClassApplicationContext”

  1. http://www.feralartery.com/
    cheap longchamp tote
    Welcome to our most popular Outlet store, We supplying goods with high quality & lower prices now, we are the best handbags Outlet store online, offering large selection of Cheap discount Handbags with pretty colors, all famous style handBags for Sale now!
    http://www.feralartery.com/includes/templates/feralartery/images/brand/right03.jpg
    http://www.feralartery.com/Timberland boots for kids

  2. http://www.programmesfr.com/
    ボストンバッグ
    最新グッチ バッグ,グッチ 財布,グッチ アウトレット,グッチ 店舗,GUCCI 財布,GUCCI バッグをご紹介?ひと足お先に旬のおしゃれを楽しんで!! グッチ 長財布,グッチ ハンドバッグ,グッチ トートバッグ,グッチ ボストンバッグ,グッチ ショルダーバッグ,グッチ ポーチ 一点限りの超お買い得品!
    http://www.programmesfr.com/includes/templates/programmesfr/images/brand/right05.jpg
    http://www.programmesfr.com/OROBIANCO バッグ

  3. http://www.fagsandgel.com/
    kobe shoes
    Search for cheap mulberry handbags? Buy a great selection of discount mulberry bags,mulberry wallets online,mulberry mens bags,mens mulberry wallets at fagsandgel.com enjoy free shipping.
    http://www.fagsandgel.com/includes/templates/fagsandgel/images/brand/right07.jpg
    http://www.fagsandgel.com/mens michael kors bags

  4. http://www.androspeed.com/
    fashion clothing
    Christian Louboutin online store : Christian Louboutin men,Christian Louboutin pigalle,Christian Louboutin ankle boots,Christian Louboutin patform pumps discount sales.Welcome to Christian Louboutin sale shop and you can choose your favorite Christian Louboutin from our website.
    http://www.androspeed.com/includes/templates/androspeed/images/brand/right08.jpg
    http://www.androspeed.com/Chanel wallet

  5. http://www.marketingbma.com/
    Jimmy Choo
    High Quality Asics sale. Cheap Asics shoes,Asics tiger shoes,Asics tiger mexico 66,Asics gel lyte iii,Asics onitsuka online. All products have a discount and you can choose your favorite Asics shoes from our website.
    http://www.marketingbma.com/includes/templates/marketingbma/images/brand/top09.jpg
    http://www.marketingbma.com/Isabel Marant sneakers sale

  6. http://www.sorella-luna.com/
    cheap longchamps bags
    AAA quanlity products at cheap price, stylish purses sales, import cheap designer handbags, replica designer shoes, fashion clothing from china, free shipping all products worldwide.
    http://www.sorella-luna.com/includes/templates/sorella-luna/images/brand/right03.jpg
    http://www.sorella-luna.com/michael kors tote

  7. http://www.peeblesfire.com/
    ダウンコート
    店舗サプライズ特価開催中!マックスマーラ コート,マックスマーラ ダウン,マックスマーラ アウトレットは今MAX86%off、peeblesfireでは,マックスマーラ ウィークエンド,マックスマーラ ダウン ウィークエンド,マックスマーラ ダウンコート,マックスマーラ ドレス,マックスマーラ ダウン 2013,マックスマーラ ダウンジャケット,MAX mara ダウン,MAX mara コートなど驚きの低価で販売中
    http://www.peeblesfire.com/includes/templates/peeblesfire/images/brand/top05.jpg
    http://www.peeblesfire.com/モンクレール ダウンコート

  8. http://www.leeerey.com/
    UGG boots
    Michael Kors bags, Michael Kors outlet, Michael Kors handbags online sale, Michael Kors on sale, Michael Kors bags discount. In leeerey.com, we also provide cheap Michael Kors shoes and Michael Kors wallet. Wish you have a pleasant shopping process!
    http://www.leeerey.com/includes/templates/leeerey/images/brand/top04.jpg
    http://www.leeerey.com/Longchamp le pliage sale

  9. http://www.chanelem.com/
    シャネル バッグ 新作
    シャネル ブランド専門店【正規品質保証】シャネル ピアス 新作 2013、ドンキホーテ シャネル ピアス、シャネル ピアス 本物、シャネル ネックレス 新作、シャネル ネックレス 2013、シャネル ネックレス 人気 安値価格熱販!ぜひお見逃しなく
    http://www.chanelem.com/includes/templates/chanelem/images/brand/right01.jpg
    http://www.chanelem.com/シャネル ネックレス 2013

  10. http://www.kipsys.com/
    gucci bags outlet
    Shop the Isabel Marant outlet in kipsys.com,Isabel Marant Outlet,Cheap Isabel Marant,Isabel Marant Sale,Isabel Marant For Sale,Isabel Marant Big Discount with Free Shipping.
    http://www.kipsys.com/includes/templates/kipsys/images/brand/top03.jpg
    http://www.kipsys.com/New Balance For Sale

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha