이번주는 스프링과 Groovy/Grails의 공동 컨퍼런스인 SpringOne2GX가 열리는 기간이다. 컨퍼런스 발표와 개발자간의 교류, 각종 파티 등으로 분주하게 보내고 있어야 할 시간이지만 우리의 착실한 유겐은 오늘도 열심히 스프링 3.0 마무리 작업에 애를 쓰고 있는 것 같다. 그러나 RC2 이슈가 줄지는 않고 오히려 새로운 이런 저런 기능을 만들고, 기존에 추가한 기능과 코드를 다듬는 작업을 열심히 하고 있다. 유겐은 자신이 만든 코드를 꾸준히 다듬는다. 테스트 코드도 리팩토링 하고 정리하는 등에도 적지 않은 시간을 투자하는 것 같다. 클린업 밥 삼촌이 보면 좋아할 일이다. 새로운 기능이 꾸준히 깔끔하게 추가되려면 먼저 기존 코드들과 설계와 심지어 테스트 조차 잘 정리가 되 있어야 한다. 그래서 남은 이슈를 빨리 줄이는데보다 이런 저런 코드를 다듬어나가는 데 시간을 들이는 것 같다.

아무튼 어제 올라온 업데이트를 보다가 한가지 눈에 띄는 것 발견. 스프링에서 가장 오래된, 무려 8년이 넘은 인터페이스이자 스프링 IoC/DI의 핵심이라고 할 수 있는 BeanFactory에 새로운 메소드가 추가됐다. 

추가된 메소드는 getBean()이다.

<T> T getBean(Class<T> requiredType) throws BeansException;

이미 여러 개의 getBean()이 있는데 뭘 또 추가한 것일까? 그것도 이 시점에서?

사실 나는 이 메소드가 왜 등장하지 않는지에 대해서 2.5 시절부터 의아해했다. 2.5의 대표적인 추가기능은 바로 @Autowired이다. Fine-grained Type Autowiring이라고도 불리는  @Autowired는 타입을 이용한 자동와이어링 기법을 프로퍼티나 메소드 단위로 세밀하게 지정할 수 있도록 만들어준 것이다. 특별한 경우가 아니고는 한 컨테이너에 올라가는 빈들은 대부분 고유한 타입을 가지고 있다. 즉, 대부분 타입당 하나의 빈이 존재한다. 따라서 관리대상인 오브젝트를 후보로 해서 대입가능한 타입을 추적하면 쉽게 DI할 대상을 찾을 수 있다. 나는 이 방식이 사실상 스프링의 표준 DI방식으로 자리잡고 있다고 생각된다.

그런데 스프링 DI의 가장 기본이 되는 BeanFactory 인터페이스의 메소드에는 이렇게 타입을 가지고 고유한 빈을 찾는 메소드가 존재하지 않았다. 물론 일반적으로는 getBean()을 직접 사용하는 경우가 거의 없겠지만, 그래도 종종 테스트나 학습을 위한 목적으로 AC나 BF를 직접 사용하다보면 항상 아쉬운게 이 것이었다. 왜 getBean()은 다 이름으로만 찾도록 만들었을까.

재밌는 것은 빈의 이름은 타입으로 찾는 기능이 있었다는 사실. BeanFactory에 있는 것은 아니지만 대표적인 BF구현인 DefaultListableBeanFactory(AC가 사용하는게 이 놈이다)에는 getBeanNamesForType(Class)라는 것이 있다. 타입을 주면 그에 해당하는 빈 이름들을 배열로 돌려준다.

아무튼 무슨 생각에서였는지 유겐은 이제야 타입을 가지고 빈 오브젝트를 바로 찾아주는 getBean(Class) 메소드를 추가했다. 개념은 @Autowired랑 같다. 주어진 타입과 일치하는 빈이 하나만 존재하면 그것을 돌려주고, 하나 이상이면 예외를 발생시킨다.

getBean(이름) 시대는 이제 서서히 사라지는 것일지도 모르겠다.

Related posts:

  1. Spring 3.0 (58) Static Class를 XML없이 빈으로 등록하기
  2. Inside Spring (5) PropertyPlaceholderConfigurer를 @Bean으로 정의해서는 안되는 이유
  3. Spring 3.0 (53) Spring Dependency Matrix 업데이트
  4. Spring 3.0 (42) Spring Dependency Matrix 업데이트
  5. Spring 3.0 (35) Spring 3.0 Reference Document 공개
  6. Spring 3.0 (26) Spring Expression Language와 @Value
  7. Spring 3.0 (7) Spring 3.0 Dependency Matrix
  8. 유쾌한 이슈처리 재촉 메일
  9. Spring 3.0 (56) @Bean 사용의 주의사항
  10. Spring 3.0 (38) Spring Reference 업데이트
  11. Spring 3.0 (44) Spring 3.0과 JEE6
  12. Spring 3.0 (4) – Maven에서 Spring 3.0 최신버전 사용하기
  13. InsideSpring (1) Annotated Factory Method (@Configuration)을 쓰는 4가지 방법 (2)
  14. 스프링 빈의 이름은 한글로 지어도 된다
  15. S1A 2008 셋째날 – Spring JavaConfig

Facebook comments:

to “Spring 3.0 (55) getBean(Class) 등장”

  1. 드디어 공식 API가 되었네. 그 동안 왜 DefaultListableBeanFactory에 숨겨두나 했는데…
    좌우간…. 찾으면 어디엔가 있고 없어도 좀 있면 생기는 스프링…

  2. 어쩜, 그냥 가셨어요~

  3. 박안나/ 그러게요.

  4. ӏt’s really a nice and useful piece of information. I’m haρpу thаt yоu shагed thiѕ hеlpful
    іnformаtіon ωith uѕ. Pleaѕe κeep uѕ infοrmеԁ like thіs.
    Thanks fοr shaгing.

  5. Sneak A Peek At This Website

  6. thanks for share!

  7. Pop Over HERE
    [url=http://www.m7e.cn/uploads/indexn.php?/chloe-austin-photography-chloe-cheap.html]chloe austin photography-chloe-cheap[/url]
    chloe austin photography-chloe-cheap

  8. You could try here
    [url=http://www.fcbxw.com/images/ilbox11.php?/moncler-clothes-we-carry-quality-products.html]moncler clothes-We carry quality products[/url]
    moncler clothes-We carry quality products

  9. Click HERE
    [url=http://www.qiyeseo.net/member/uploadsiselect.php?/ugg-boots-keyring-you-will-find-the-doable-extravagance.html]ugg boots keyring-You will find the doable extravagance[/url]
    ugg boots keyring-You will find the doable extravagance

  10. thanks for share!

  11. Sneak A Peek At THIS Site
    [url=http://www.woodallconst.com/W3SVC402/index.php?/nike-air-max-iv-nike-retailer.html]nike air max iv-nike-retailer[/url]
    nike air max iv-nike-retailer

  12. Sneak A Peek At THIS WebSite
    [url=http://fakebootsonsale.com]fake uggs[/url]
    fake uggs

  13. You can try this out
    [url=http://australiaukbootsale.com]ugg australia sale[/url]
    ugg australia sale

  14. mbt tariki Spring 3.0 (55) getBean(Class) 등장 » Toby’s Epril

  15. levitra generika
    When the water lines have burst open in a upstairs location, make use of a resource to perforate the ceiling beneath in many locations and places pans less than to hook the water. If this sounds like not done, the load of the accumulating normal water might lead to a failure in the complete roof.
    cialis fass
    If you’ve read this overall post, then you can definitely clearly realize that there are many different recommendations you may use in order to save funds whilst continue to finding the best possible life insurance coverage insurance policy for yourself and your family. Weigh your choices, and utilize this info to assist you make the most informed selection feasible.Useful Tips On Using Charge Cards
    levitra generico
    Car insurance is just one of those essentials of daily life, therefore you must make sure that you may have the most effective policy readily available. Once you know what you really are doing and have a basic grasp of your rules, it’s not too difficult to find an effective plan. Bare in mind what you’ve learned with this report.Insurance plan May Be Overwhelming, Help It Become Simple With These Ideas
    propecia erfahrungen

  16. priligy kosten
    Make your pressure manageable. An increased level of pressure can worsen and increase major depression. It can also induce a depressive episode. Notice each of the regions in your life that happen to be straining you out, and think of a prepare that will reduce the consequences they may have upon you.
    Levitra bayer
    Acne is a pressure to numerous men and women. Acne is a result of the pores of the skin becoming stopped up by oil and debris, which then causes bacteria to cultivate in them. The bacteria brings about puffiness in the section of progress. In case you have pimples and would like to get rid of it, then read on to understand some useful ideas.
    cialis original
    If your puppy has a difficult time learning through your training, determine what modifications may help. If the room is not really very ample your puppy may be preoccupied. Long exercise sessions may possibly surpass your dog’s interest span. Periods which can be too short usually do not give your pet lots of time to soak up education properly.
    priligy fass

  17. super kamagra kaufen
    When ringing in ears begins to annoy you, sit back and pay attention to it! Consider to determine just what the noises are, from bubbles coming your esophagus to bloodstream rushing through the vessels in your ear. It can help to quiet the mind and you’ll forget about how obnoxious the sounds are!
    cialis tilskud
    Have you ever heard in regards to the new intelligent addresses available for your iPad? You can use one that makes use of magnets inside your product, allowing you to a lot more easily strength down and get up your iPad. It matches excellent, seems fantastic, and is definitely a helpful and valuable device for your personal gadget.
    levitra belgique
    Bear in mind you’re dealing with folks. It might be quite simple, especially on the net, to forget that this folks your community are people who have people, lifestyles and ambitions. You might forget about they require help, encouragement and motivation exactly like you need to do. So remembering this can put you considerably prior to all the others inside your organization folks value getting loved.
    viagra kaufen rezeptfrei

  18. kamagra wien
    Getting in mass is one of the best stuff that you can do in order to conserve lots of money in the past year. Rather than going to the grocery store beyond doubt goods, get a Costco cards. This will provide you with the capability to buy distinct perishables in mass, which could very last for a long time.
    levitra kopen
    Decrease your credit card credit accounts just to 1 account. Experiencing several credit card can bring about challenges in dealing with your monthly obligations. Typically a lot of people dedicate to cards available and with multiples you operate the potential risk of outstripping your skill to cover every one of the monthly payments necessary to take care of your expected days.
    kamagra oral jelly
    See your chiropractic practitioner on a regular basis. While pregnant there is a lot of tension and bodyweight wear your backbone, hips and also other bones. Do yourself a prefer having a standard realignment. It can make you stay feeling much better, a lot more flexible and prevent these pains and aches of being pregnant.
    kamagra suisse

  19. I simply want to tell you that I am beginner to blogging and really liked you’re web site. Most likely I’m going to bookmark your blog . You amazingly have fantastic articles and reviews. Thanks for sharing with us your website page.

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