BeanDefinitionParser를 만드는 것이 XML설정방법을 확장한 custom tag를 만드는 핵심과정이다. 이제는 그 외에 필요한 작업을 알아보자.

Custom Tag 개발순서

  1. Schema 작성
  2. NamespaceHandler 개발
  3. BeanDefinitionParser 개발
  4. 등록파일 (handler, schema) 작성

Schema 작성

만들고자하는 태그가 포함될 namespace의 schema를 만든다. 툴을 쓰건 직접 만들 건 schema를 만든다. 일반적인 schema 생성방법과 다를 바 하나 없다.

Schema작성방법에 대해서 알고 싶다면 XML 서적을 찾아서 공부하던가 w3c사이트에 나온 다음의 문서를 공부하면 될 것이다. 한시간이면 기초적인 스키마 작성방법을 마스터 하기에 충분하다고 본다.

NamespaceHandler 개발

NamespaceHandler는 namespace당 한개씩 필요하다. 각 tag를 담당하는 BeanDefinitionParser를 등록하는 것이 그 역할이다.

public class SampleNamespaceHandler extends NamespaceHandlerSupport {

public void init() {
    registerBeanDefinitionParser(“dateformat”, new     SimpleDateFormatBeanDefinitionParser());
    registerBeanDefinitionParser(“twobeanswithid”, new TwoBeansWithIdBeanDefinitionParser());
}
}

init() 메소드안에 tag이름과 BDP인스턴스를 함께 등록해준다.

BeanDefinitionParser

앞의 글에 적은 내용 그대로.

등록파일 (handler, schema) 작성

META-INF 밑에 다음의 두개의 파일을 작성한다. Spring이 이를 참조해서 bean등록을 담당할 NamespaceHandler를 사용하게 해준다.

  • spring.handlers : Namespace URI와 Handler class를 매핑해준다

http\://www.epril.com/schema/myns=sample.namespace.SampleNamespaceHandler

  • spring.schemas : Namespace URI와 schema 파일을 매핑해준다

http\://www.epril.com/schema/myns/myns.xsd=sample/namespace/sampleschema.xsd

 

이제 개발완료다. Spring 설정파일에 namespace를 추가하고 사용하면 끝.

 

좀 더 해볼 것

Normal bean에 사용할 수 있는 attribute를 개발할 수 있다. p: 애트리뷰트의 사용이 그 한 예다.

p:를 사용하면 schema 작성 없이 다이나믹하게 애트리뷰트이름을 프로퍼티이름으로 하는 값을 세팅할 수 있다. 이것만 써도 빈 설정이 간단해진다.

<bean id=”a” class=”c”>
  <property name=”tel” value=”123″ />
  <property name=”addr” value=”seoul” />
  <property name=”user” ref=”userbean” />
</bean>

이것을 p attribute를 이용해서 변경하면

<bean id=”a” class=”c” p:tel=”123″ p:addr=”seoul” p:user-ref=”userbean” />

로 바꿀수 있다.

BeanDefinitionDecorator를 이용한 것이다. 말 그대로 이미 설정이 된 bean에 추가적인 데코레이션 작업이 가능하다.

 

AOP를 이용한 annotation based bean 등록용 tag 개발. 이건 잘 쓰면 아주 편리하다. Annotation기반의 pointcut을 활용해서 대상 bean의 후보를 선택하고 이를 프로퍼티로 설정한다거나 빈을 생성한다거나 등등의 작업이 가능할 것이다.

 

이 글을 보는 스프링 개발자들에게

블로그에 공부한 내용을 정리할 때는 나름 읽게 될 독자를 고려하고 글을 쓰려고 하지만 그래도 시간을 많이 사용하기는 어렵기 때문에 글을 좀 성의없이 쓴다. -_-; 하지만 한편으로는 이런 글을 남기면 과연 한명이라도 이 글의 도움을 받아서 이 내용을 직접 적용해보고 공부하는 사람이 있을까 의문이기도 하다. 혹시 이 글을 참조로 직접 custom tag를 개발해본 사람이 있다면 댓글이나 이멜을 통해서 알려준다면 앞으로도 이런 글을 많이 올려볼 생각이다.

Related posts:

  1. Spring 2.0의 XML확장기능 (2)
  2. Spring 2.0의 XML확장기능 (1)
  3. Spring 3.0 (58) Static Class를 XML없이 빈으로 등록하기
  4. 스프링 3.1 (6) web.xml의 활성 프로파일 설정
  5. Maven settings.xml의 비밀번호 암호화
  6. S1A 2008 셋째날 – Spring JavaConfig
  7. InsideSpring (1) Annotated Factory Method (@Configuration)을 쓰는 4가지 방법 (3)
  8. Spring 3.0 (52) 반쪽짜리 3.0 RC1 공개
  9. Spring 3.0 (28) R-669 Update
  10. Spring 3.0 (56) @Bean 사용의 주의사항
  11. Spring 3.0 (46) Spring 3.0 M4 릴리스
  12. 미리 보는 Spring 3.0.1의 변경사항
  13. Spring 3.0 (54) 드디어 등장한 ConfigurationClassApplicationContext
  14. Spring 3.0 (4) – Maven에서 Spring 3.0 최신버전 사용하기
  15. 유쾌한 이슈처리 재촉 메일

Facebook comments:

to “Spring 2.0 XML확장기능 (3)”

  1. ‘이런 글을 남기면 과연 한명이라도 이 글의 도움을 받아서 이 내용을 직접 적용해보고 공부하는 사람이 있을까 의문이기도 하다’
    // 네 도움이 됩니다. 지금 당장 custom tag를 만들 여유가 없더라도, 차후 관련 개발을 할때 아주 유용합니다.
    과거 포스트한 내용들도 어느순간 필요한 정보를 찾을때 도움되었던적이 많았습니다.
    사소한 것이라도 포스트해 주시면 모르긴해도 도움되는 사람들 많을것 같습니다.
    자주 포스트 해 주세요 :)

    (설날… 잠시 들려봤습니다. ^^ )

  2. 여기 확실히 도움 많이 받는 사람 한명 있습니다~!

  3. 언제나 도움을 많이 받고 있습니다.
    왕성한 집필활동 부탁드립니다. ^^

  4. [...] 두 번째 세션은 이일민대표가 스프링2.0에서 새로 도입된 스키마 기반의 빈 설정과 커스텀 스키마 작성에 대해서 발표하였습니다. 조금 생소한 분들이 있을만한 주제였지만, 적절한 데모와 함께 이일민대표의 차분한 진행에 대해서 많은 분들이 만족스러워하셨습니다. 스스로 실습해보고 싶은 분들은 이일민대표의 블로그에 연재된 글(1회, 2회, 3회)을 참조해서 도전해보세요. [...]

  5. 좀 더 해볼 것에 한가지 더 추가하자면 STS의 기능 중 하나로 XML 네임스페이스를 체크박스를 사용해서 간단하게 구성할 수 있는데 거기에 커스텀 네임스페이스 설정 기능을 추가하는 것…

  6. If you require any method of accounting from the worth, score your pals.
    nike pas cher http://nikepascherfr.blogspot.com/

  7. Affection certainly is the activated problem to the days and expansion of what we really like.
    [url=http://www.fr-marque.com/]Pull Gucci[/url]
    Pull Gucci

  8. Fancy could be fragile within arrival, nevertheless ages more potent with each passing year should it be accordingly federal. destockchine http://www.b77.fr/lunettes-c-22.html/

  9. registry cleaner…

    this is a 좋은 사이트…

  10. Pop Over To This Site

  11. In 1990, coaching legends Joe Gibbs, Chuck Knoll and Don Shula were still patrolling the 2009 All Star Texas Rangers 32 Josh Hamilton Blue Jerseys sidelines, while other notable members of the profession included Mike Ditka, Jimmy Johnson, Bill Parcells and Dan Reeves, to name a few. There, were, however, some not-so-notable names leading NFL teams back then, just as is the case today. For every Hall of Fame head coach like a Gibbs or Shula there have been plenty of Rod Rusts and Cam Camerons.

    Here鈥檚 Athlon Sports’ list of the worst NFL head coaching tenures since 1990:

    20. Dave McGinnis, Arizona Cardinals (17-40, 2000-03)

    The Good: McGinnis鈥?coaching tenure 2009 All Star Boston Red Sox 20 Youkilis Blue Jerseys in the NFL goes back to 1986, when he started as a linebackers coach for the Chicago Bears. He is currently an assistant head coach with the St. Louis Rams.
    The Bad: His head coaching career got off to a rocky start, going 1-8 as interim head coach for Arizona in 2000 following the firing of Vince Tobin, who started the season 2-5.
    The Ugly: After going 7-9 in 2001, his last two Cardinals teams went a combined 9-21 in 2002-03, finishing 29th or worse in points scored and points allowed in both seasons.

  12. Great site. Plenty of useful info here. I’m sending it to some friends ans additionally sharing in delicious. And naturally, thanks to your effort!

  13. プラダ アウトレットHiya, I’m really glad I have found this info. Today bloggers publish just about gossips and internet and this is really annoying. A good blog with interesting content, that is what I need. Thanks for keeping this site, I’ll be visiting it. Do you do newsletters? Can’t find it. トリーバーチ ビーチサンダル zpspam

  14. I came to your page and noticed you could have a lot more visitors. I have found that the key to running a website is making sure the visitors you are getting are interested in your niche. There is a company that you can get visitors from and they let you try their service for free. I managed to get over 300 targetted visitors to day to my site. Visit them today: http://nsru.net/138e

  15. how do u know if gucci is real Spring 2.0 XML확장기능 (3) » Toby’s Epril

  16. aldo shoes Spring 2.0 XML확장기능 (3) » Toby’s Epril

  17. mbt shoes discontinued Spring 2.0 XML확장기능 (3) » Toby’s Epril

  18. shoe mbt Spring 2.0 XML확장기능 (3) » Toby’s Epril

  19. Adidas Sl Loop Price
    Even if you have health care insurance, don’t be afraid to barter together with your medical doctor for the from bank account expenses. Some insurance policies have a high co-pay, particularly for healthcare facility continues to be and surgeries. Several physicians will lessen your price tag for such points in the event you ask with their place of work.

    https://www.allyoucan-read.de/images/allyoucan-read/3985-louboutin-schuhe-herren-billig.jpg

    Make use of your college or university library for understanding reasons. There exists nothing quieter when compared to a catalogue it’s the perfect position to get the supreme peacefulness and calm for any major examination cram. But for many it may be too calm. Should you be one of those particular that find it hard to keep awaken in the collection, camp out out even closer to the access way exactly where there is a much more activity.

    https://www.pasionescort.es/images/puma-4pics/11098-puma-x-staple-clyde.jpg

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