3.0에 추가된 SpEL의 활용방법은 매우 다양하다. SpEL을 사용하면 기존에 애용되던 ${}와 <context:property-placeholder>를 대체할 수도 있다.

${}로 property place holder를 만들어 두고 프로퍼티 파일을 읽어서 value를 바꿔치기 하는 방법은 환경에 따라서 자주 변하는 DB연결정보와 같은 설정정보를 XML이나 소스코드에서 분리시킬 수 있다는 장점이 있다. SRP에 따르면 responsibility, 즉 변하는 이유가 다르면 분리해야 한다. 설정 정보도 마찬가지다.

${} 방식의 단점은 프로퍼티 파일의 키 값에 ${ prefix와 } suffix를 붙여서 find-and-replace 방식으로 동작한다는 점이다. 매칭되는 키 값이 존재하지 않으면 ${} 부분이 그대로 남을 수 있다. 설정을 빼먹은 것이라면 모르겠지만 오타로 인해서 이름을 잘못 적거나 ${}을 제대로 넣지 않아도 경고 없이 그냥 넘어간다. 내부적으로는 BFPP에 의해서 동작하는 것이므로 ${}을 가진 빈 입장에서는 수동적이다. 남이 변경해주면 고맙고 아니어도 불평을 할 수 없다.

반면에 SpEL을 사용하는 방법은 능동적이다. SpEL로 property-placeholder를 대체하면 BFPP를 사용하지 않아도 된다. <util:properties>를 이용해서 프로퍼티 파일을 Properties 타입의 빈으로 생성하게 하고 다른 빈 오브젝트에 접근할 수 있는 SpEL을 이용해서 원하는 프로퍼티 값을 찾아오게 만들면 된다.

<util:properties id=”dbpr” location=”…” /> 이라고 되어있다면,

<property name=”username” value=”#{dbpr[‘username’]}” /> 으로 만들어주면된다. []는 Map 오브젝트의 get()을 호출해주는 SpEL의 표현이다.

SpEL은 능동적이다. 자기가 필요한 정보를 원하는 프로퍼티 정보를 담은 빈에 가서 직접 찾아오는 것이다. Properties빈이 존재하지 않으면 에러도 발생시켜준다. 물론 Map의 get()이라 키에 해당하는 값이 없어도 그냥 null이 들어간다는 한계는 있다. 수식을 좀 길게 쓰면 null인 경우에 오류가 발생하게 만드는 것도 가능할 것이다.

${}는 기존 설정의 호환성과 익숙한 방식의 집착 때문에라도 앞으로 오랜동안 사용될 것이다. context 스키마에서 직접 지원해주는 기능이기도 하고. 하지만 나는 SpEL을 사용하는 능동적인 방식으로 모두 바꿀 생각이다. 더 명시적이고, 구체적이고, 이해하기 쉽고, 오류도 잘 잡아주는 SpEL 방식이 더 맘에 들기 때문이다.

Related posts:

  1. Spring 3.0 EL (Spel)을 이용한 AssertThrows 확장 (3)
  2. Spring 3.0 EL (Spel)을 이용한 AssertThrows 확장 (2)
  3. Spring Expressions(SpEL)를 이용한 Mockito Argument Matcher 만들기
  4. Spring 3.0 EL (Spel)을 이용한 AssertThrows 확장 (1)
  5. 스프링 컨테이너에는 설정파일이 없다
  6. 톰캣 앞에 아파치 웹 서버(Httpd)를 두어야 할까?
  7. Maven archetype 설정파일 자동생성기 – ArchetypeXmlWriter
  8. 파이썬 완벽 가이드 전자책
  9. Spring 2.0의 XML확장기능 (1)
  10. 스프링 3.1 (7) 프로퍼티 소스 추상화와 PropertySourcePlaceholderConfigurer
  11. Inside Spring (5) PropertyPlaceholderConfigurer를 @Bean으로 정의해서는 안되는 이유
  12. Spring 3.0 (28) R-669 Update
  13. Spring 3.0 (52) 반쪽짜리 3.0 RC1 공개
  14. Spring 3.0 (36) Field Marker와 Field Default
  15. Spring 3.0 (2) R-518 스프링의 새 모듈 OXM(Object/XML Mapping)

Facebook comments:

to “Spring 3.0 (59) 프로퍼티 파일 이용하기 – placeholder vs SpEL”

  1. Thanks for calling 2 day diet japan lingzhi slimming formula reviews The bisexual Billy Prior, a young man who has survived the worst kind of respectable working-class upbringing, is a triumph of characterisation

  2. Is there ? 5g male plus ingredients The statement said they intended to repay the funds, likely deducting them from any possible civil settlement, and will now be returning the money because they have decided not to pursue a civil case against Pistorius.

  3. This is the job description alesse 28 price canada The AA has already waded in. President, Edmund King, says: “There are many proposals in the report with merit and which are advocated by the AA. Road safety on the national curriculum is something we have long campaigned for and I am pleased to see it being recommended here.

  4. I value the blog post.Really looking forward to read more.

  5. I’d like to withdraw $100, please trigosamine ingredients Stocks on Wall Street surged and oil prices jumped as muchas 5 percent after the Fed statement

  6. Canada>Canada can my doctor prescribe clomid uk “I will submit the report and bring together the two houses to show the nation what has been done so we advance on these important measures,” Kabila said in a short speech, without providing any policy specifics.

  7. Looking for a job zest azabu Blevins is owed $2.4 million this season, while Torres is pre-arbitration eligible.

  8. Very funny pictures keflex price canada Price’s biggest regret was the changeup he left up to No. 9 hitter Colin Cowgill with the bases loaded in the second, especially as it soared into the left-center gap and gave the Angels a 3-0 lead. (In his 22 starts, Price has allowed No. 9 hitters a .281 average, including five extra-base hits.) “That hurt,” Price said. “It was the right pitch, I just didn’t execute it.”

  9. I can’t stand football medical erectile dysfunction treatment izle As the global economic meltdown took hold, Mr Salmond blamed “spivs and speculators” for the problems which caused the takeover of HBOS, as the crisis of confidence in the financial sector hit Scotland.

  10. although internet websites we backlink to below are considerably not related to ours, we really feel they are really worth a go by, so have a look

  11. A few months cephalexin 500mg capsule para que sirve COSCO announced in March that it was selling its logisticsunit to try to return to profitability, yet on Monday it said itexpects to post a first-half loss. The loss will likely be 70 to85 percent smaller than a year earlier, but that may not beenough to assure a profitable year.

  12. US dollars erectile dysfunction drugs least side effects nnm According to reports, eight people from the 21st Century financial news website and PR companies have been arrested for extorting money from companies in exchange for positive news and attacking those who did not co-operate.

  13. On another call buy eriacta pills These pools are exceedingly rare, though, and they were quickly being tapped out as the world’s consumption grew, raising fears that the end of the oil and gas age would soon be at hand and raising prices to alarming levels.

  14. Looking for a job coldwok syrup “English votes for English laws is the neat trap laid by the Conservatives – into which Labour has obligingly stepped

  15. Here is an excellent Weblog You may Come across Exciting that we Encourage You

  16. I’m doing an internship how long does 60 mg strattera last Detroit, a former manufacturing powerhouse and cradle of theU.S. automotive industry and Motown music, has struggled fordecades as companies moved or closed, crime surged, and itspopulation dwindled. The city’s revenue fell short of spending,while city budgets and borrowing ballooned.

  17. I’m on work experience derm exclusive reviews fill and freeze Every year there’s usually what we call the console wars, and after struggling along in 2014, Xbox One came in on top.

  18. Can I call you back? vipro power x dapoxetine Chocolate is toxic because it contains theobromine — a naturally occurring chemical found in cocoa beans which dogs and other animals excrete much less effectively than humans

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