스프링 3.1의 프로파일은 매력적이다. 이 좋은 걸 왜 진작에 안 만들었을까 싶다.

프로파일을 활성화 시키는 방법은 여러가지다. 컨텍스트의 Environment 오브젝트를 가져와 setActiveProfiles() 해주는 방법도 있고, 시스템 프로퍼티 설정, 환경 변수 설정, JVM 커맨드 라인 파라미터 설정 등등.

WAS에 올라가는 웹 앱이 여러개거나 시스템 관리자가 까칠해서 지원을 잘 안하주는 관계로 JVM 레벨의 프로파일 지정이 곤란하다면 web.xml에 넣는 방법도 있는데, 이 때 servlet context parameter와 servlet init. parameter 두가지가 다 가능하다.

그런데 주의할 점이 있다.

웹 환경에서 루트 앱 컨텍스트는 <listener>로 등록한 컨텍스트 로더가 담당하고,  앱 컨텍스트 옵션은 서블릿 컨텍스트 파라미터를 지정하는 <context-param>을 사용한다.

DispatcherServlet이 만드는 서블릿 앱 컨텍스트에 관한 설정은 <servlet> 안에 <init-param>을 사용해서 앱 컨텍스트 클래스나 파일 등을 지정할 수 있다.

이렇게 사용하던 습관을 가지고 <context-param>은 루트 앱 컨텍스트용이고, <init-param>은 서블릿 앱 컨텍스트용이라고 막연히 생각하고 있으면 active 프로파일 지정할 때 실수 할 수 있다.

왜냐하면 active 프로파일 설정에서는 <context-param>은 해당 웹 애플리케이션의 모든 앱 컨텍스트에 영향을 주기 때문이다.

<context-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>dev</param-value>
</context-param>

이렇게 해 놓으면 루트 앱 컨텍스트 뿐 아니라 서블릿 앱 컨텍스트에도 active 프로파일이 dev로 잡힌다.

반면에 <servlet> 아래

<init-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>dev</param-value>
</init-param>

 

이렇게 해 놓으면 이건 루트 앱 컨텍스트의 active 프로파일에는 영향을 주지 않는다.

어떻게 보면 이게 자연스럽게 보인다. 서블릿 컨텍스트(즉 웹 앱)가 범위가 더 크므로 서블릿 컨텍스트의 모든 컨텍스트에 영향을 미치는게 맞다. 반면에 서블릿 레벨의 파라미터는 해당 서블릿의 앱 컨텍스트에만 적용되야지.

문제는 앱 컨텍스트의 조건을 줄 때는 이게 분리된다는 점이다. 같은 파라미터 설정 방식이지만 용도에 따라 적용 범위가 달라진다. 그래서 착각할 수도 있으니 주의할 것.

다른 문제로는 루트 앱 컨텍스에만 active 프로파일을 지정할 방법이 없다. 있을지도 모르겠지만 아직까지 못 찾았다.

 

그런데 프로파일을 하나의 웹 앱 안에서도 다르게 줄 필요가 있을까? 없을 거라고 볼 수는 없겠지. 매우 규모가 큰 앱이라 계층별로 독립적으로 개발하고, DS서블릿도 여러개를 사용하는 경우라면 필요에 따라 각각 다른 active 프로파일을 줄 수 있을 것이다. 물론 프로파일을 전체적으로 통일해서 관리하는 게 바람직하겠지만.

오늘의 결론은…

앱 컨텍스트 설정 결과를 꼭 눈으로 확인해서 기대한 대로 원하는 빈이 구성됐는지 확인하자. 특히 프로파일 같은 거 지정은 착각하면 대박 사고가 날지도. 설정 결과 확인 방법은 여기 저기서 많이 얘기했으므로 안해도 되겠지.

스프링 오덕 말고는 관심없을 것 같은 얘기는 여기서 끝. (뭔말하는지 도통 모르신 분들에게는 죄송. 언젠가 이해되실 겁니다)

Related posts:

  1. Spring 2.0 XML확장기능 (3)
  2. Spring 3.0 (58) Static Class를 XML없이 빈으로 등록하기
  3. Spring 2.0의 XML확장기능 (1)
  4. Spring 2.0의 XML확장기능 (2)
  5. Maven settings.xml의 비밀번호 암호화
  6. InsideSpring (3) 스프링 밖에서 WebApplicationContext에 접근하기
  7. 스프링 3.1 (7) 프로퍼티 소스 추상화와 PropertySourcePlaceholderConfigurer
  8. DispatcherServlet의 디폴트 대체(fallback) 전략
  9. Spring 3.0 (15) Jdbc 모듈의 선택 라이브러리 분석
  10. JRuby/JRor + Spring
  11. 스크린캐스트 – 테스트와 스프링
  12. 토비의 스프링 3 출간지연과 동영상 소식
  13. 토비의 스프링 3이 나오기까지 (8)
  14. [토스3] 스프링 3.0.4 <mvc:default-servlet-handler/>를 이용해서 UrlRewriteFilter없이 깔끔한 URL을 만들기
  15. Spring 3.0 (40) Spring ASM 모듈의 소스는 어디에?

Facebook comments:

to “스프링 3.1 (6) web.xml의 활성 프로파일 설정”

  1. Medications Erectile Dysfunction Extra Resources https://dykleue.com/# – Ed Pharmacies Canadian Drug Rx Tadalafil Generic Canada <a href="https://dykleue.com/#">Medical Drug Prices</a> Inquiry Health One Pharmacy Canada

  2. Click Over Here Canadian Prescription Drugstore Reviews https://gecydeo.com/# – Click This Site Erectile Dysfunction Drugs Online Source <a href="https://gecydeo.com/#">Generic Ed Pills From Canada</a> Online Pharmacies Without Prescription Pop Over To This Site

  3. (сериал 2020) все серии подряд http://bitly.com/36bC04y – Сверхъестественное сериал онлайн Смотреть онлайн сериалы в хорошем качестве, фильмы и тв-шоу

  4. Thank you ever so for you article post.Really thank you! Cool.

  5. Thanks again for the blog.Much thanks again. Cool.

  6. Utterly written subject material, appreciate it for selective information.

  7. Really enjoyed this article.Really looking forward to read more. Really Cool.

  8. Sites of interest we have a link to

  9. Say, you got a nice blog post.Really thank you! Will read on

  10. Все серии подряд смотреть онлайн http://bitly.com/2WK1EKN – Волчонок смотреть сериал Смотреть сериал Все серии подряд.

  11. web site which offers such data in quality?

  12. You made some respectable points there. I looked on the internet for the problem and located most people will go together with together with your website.

  13. Very good blog article.Really thank you! Awesome.

  14. Смотреть сериал Все серии подряд. http://bitly.com/36bC04y – Сверхъестественное смотреть онлайн все серии подряд без рекламы Смотреть онлайн сериал

  15. Genuinely when someone doesn’t know then its up to other users that they will assist, so here it takes place.|

  16. Смотреть сериал все серии онлайн в хорошем качестве 4K UHD http://bitly.com/36byUxv – Черный список сезон все серии подряд. HD.

  17. I truly enjoy looking through on this web site, it has got superb posts. аЂа‹One should die proudly when it is no longer possible to live proudly.аЂа› by Friedrich Wilhelm Nietzsche.

  18. tee shirt guess ??????30????????????????5??????????????? | ????????

  19. Выбор серии. 1-2 серия, 3-4 серия. http://bitly.com/3g3raCg – Флэш все серии Смотреть онлайн сериалы в хорошем качестве

  20. buy cialis online https://cialishwzbm.com/ – cialis online buy cialis buy cialis cialis

  21. A big thank you for your article post.Much thanks again. Really Great.

  22. Really enjoyed this blog.Really looking forward to read more. Really Great.

  23. Nice blog here! Also your website loads up very fast! What web host are you using? Can I get your affiliate link to your host? I wish my web site loaded up as fast as yours lol

  24. Thank you ever so for you post. Really Great.

  25. (сериал 2020) все серии подряд http://bitly.com/3cMAXea – Дневники вампира сериал СЕРИАЛ! Все серии, сериал.

  26. Im obliged for the blog. Want more.

  27. generic viagra https://emtpartsstore.com/ – viagra online generic viagra buy viagra buy viagra

  28. Very good blog post.Really looking forward to read more. Will read on

  29. Normally I do not read post on blogs, however I would like to say that this write-up very pressured me to check out and do so! Your writing taste has been surprised me. Thank you, quite nice post.

  30. Смотреть онлайн сериалы в хорошем качестве, фильмы и тв-шоу http://bitly.com/2zMUz31 – Бывшие все серии все серии подряд. HD.

  31. Im thankful for the article.Really thank you! Keep writing.

  32. There is evidently a bunch to identify about this. I suppose you made some nice points in features also.

  33. Very good article.Much thanks again. Will read on

  34. Way cool! Some extremely valid points! I appreciate you writing this post and the rest of the website is extremely good.

  35. This is really interesting, You are a very skilled blogger. I have joined your feed and look forward to seeking more of your excellent post. Also, I ave shared your site in my social networks!

  36. There is certainly a great deal to learn about this topic. I really like all the points you ave made.

  37. I’m truly enjoying the design and layout of your site. It’s a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often. Did you hire out a designer to create your theme? Excellent work!|

  38. 2020 Все Серии Подряд смотреть онлайн в хорошем качестве http://bitly.com/2Xabc0I – Во все тяжкие смотреть сериал 2020 Все Серии Подряд смотреть онлайн в хорошем качестве

  39. Наслаждайтесь просмотром сериала http://bitly.com/2WHaM2C – Ривердэйл смотреть сериал все серии подряд все серии подряд. HD.

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