Aspects 모듈은 AspectJ의 애스팩트를 직접 사용하는 경우에 필요로 하는 aspect들을 모은 것이다.

스프링이 사용하는 AspectJ의 애스팩트는 2가지가 있다.

하나는 @Configurable과 같이 bean factory의 DI에 적용하는 경우이다. AbstractDependencyInjectionAspect.aj 가 대표적인 예이다. AspectJ AOP를 이용해서 특정 오브젝트의 생성시점을 포인트컷팅해서 그 오브젝트에 오토와이어링 방식의 DI를 수행한다. 3자 라이브러리와 같은 곳에서 생성된, 스프링이 직접 관리하지 않는 오브젝트에 DI를 적용할 때 사용한다. AspectJ의 도움없이는 불가능하다.

또 한가지 사용처는 트랜잭션 AOP를 SpringAOP방식이 아닌 AspectJ 방식을 사용할 경우이다. Method Interceptor방식을 이용하는 스프링의 경우 같은 오브젝트(타겟 오브젝트)의 메소드를 호출하는 경우 인터셉팅이 불가능하다. 이 경우 트랜잭션 어드바이스를 적용할 수 없다. 결국 이를 위해서 더 로우레벨의 바이트코드 조작이 필요하고 AspectJ AOP를 적용한다. 이때 적용되는 애스팩트가 정의되어있는 곳도 Aspects 모듈이다.

 

Aspects Module Optional Libraries

AspectJ Weaver (Runtime)

재미있게도 AspectJ AOP의 aspect(.aj)를 정의해놓은 이 모듈에서 AspectJ Weaver는 optional이다. 잘못 설정된 것이 아닌가 생각될 수 있다. 대부분 aj 파일이기 때문에 어짜피 컴파일시에는 필요하지 않지만 런타임시에는 AspectJ weaver가 사용되어야 하기 때문에 compile scope는 아니더라도 jdbc 드라이버처럼 runtime scope는 가져야 할 것 같은데 설정은 optional 이다.

왜 일까?

Optional 인 이유는 구지 weaver가 없어도 이 aspect들을 적용할 방법이 있기 때문이다. AspectJ는 런타임 시의 바이트코드 조작 방식인 weaver외에도 사전 aspectj compiler를 사용해서 아예 클래스 파일 생성 때 aspect들을 적용할 수도 있기 때문이다.

따라서 weaver는 선택이다. 구지 빌드의 번거로움을 조금 더 하더라도 런타임시의 로딩시점의 성능을 좀 더 향상시키고자 한다면 컴파일러 방식을 선택할 수 있다. 심지어 이클립스에서 AJDT를 사용하면 자동빌드에서 aj파일을 이용해서 컴파일도 해준다.

하지만 대부분의 경우 aspectj weaver가 편리하다.

 

Aspects 모듈 자체는 선택적으로 적용할 수 있어도 weaver는 필수로 넣는 것이 좋겠다.

 

Transaction Module

Aspects 모듈은 스프링의 Tx Module을 optional로 의존하고 있다. 트랜잭션 aspect가 트랜잭션 모듈의 TransactionAspectSupport를 의존하고 있기 때문이다. Aspects 모듈을 쓴다고 해도 Transaction AOP에 적용하지 않는 경우도 많기 때문에 이 자체가 optional로 설정되어있다.

개념적으로 보자면 트랜잭션 모듈이 Aspects 모듈에 의존적이라고 볼 수도 있다. 하지만 AOP의 특성을 생각해볼 때 오히려 트랜잭션 모듈에는 투명하게 존재하면서 필요에 따라 트랜잭션의 일부 기능을 확장해서 애스팩트를 정의해서 사용할 수 있다고 본다면 애스팩트가 트랜잭션에 optional하게 의존한다고 보는 것이 더 타당할 것 같다.

 

이 부분은 optional로 그대로 놔둬도 무방하다. 왜냐하면 트랜잭션 애스팩트를 적용할 환경이라면 이미 Jdbc, Tx 모듈을 모두 포함시켰을 것이기 때문이다. 여기서는 단지 컴파일 의존관계와 기능 적용의 선택조건이 붙어있을 뿐이다.

Related posts:

  1. Spring 3.0 (10) AOP 모듈의 선택 라이브러리 분석
  2. Spring 3.0 (8) Core 모듈의 선택 라이브러리 분석
  3. Spring 3.0 (16) Jms 모듈의 선택 라이브러리 분석
  4. Spring 3.0 (13) Context 모듈의 선택 라이브러리 분석
  5. Spring 3.0 (14) Context Support 모듈의 선택 라이브러리 분석
  6. Spring 3.0 (21) Web 모듈의 선택 라이브러리 분석
  7. Spring 3.0 (22) Web.Servlet 모듈의 선택 라이브러리 분석
  8. Spring 3.0 (20) Transaction 모듈의 선택 라이브러리
  9. Spring 3.0 (50) JUnit 4.5~4.7 겨우 지원성공 그리고 계속되는 악몽
  10. Spring 상식퀴즈 (1) – DI 태클하기 해답편
  11. Spring 3.0 (25) Spring 3.0 빌드, 배포, 모듈과 라이브러리의 의존관계 분석 그 이후
  12. 테스트 할 수 없는 것을 테스트 하기. Spring ROO와 static method mocking.
  13. Spring 3.0 (23) Web.Portlet 모듈 선택라이브러리 분석
  14. 토비의 스프링 3 간략 목차
  15. Spring 2.0의 XML확장기능 (1)

Facebook comments:

to “Spring 3.0 (11) Aspects 모듈의 선택 라이브러리 분석”

  1. whoah this blog is magnificent i like reading your articles. Stay up the good work! You know, a lot of people are looking round for this info, you can aid them greatly. |

  2. Wonderful story, reckoned we could combine a handful of unrelated data, nonetheless truly really worth taking a appear, whoa did a single study about Mid East has got a lot more problerms also

  3. we came across a cool web-site which you may possibly appreciate. Take a appear if you want

  4. we prefer to honor many other world wide web web pages on the web, even when they arent linked to us, by linking to them. Under are some webpages really worth checking out

  5. check beneath, are some completely unrelated sites to ours, however, they may be most trustworthy sources that we use

  6. that may be the finish of this report. Right here youll locate some web pages that we consider you will appreciate, just click the links over

  7. Thanks you very much

  8. Hey, Great post buddy. Completely enjoyed reading it. Thank you. I wrote this article on my website

  9. we came across a cool web-site which you may well take pleasure in. Take a appear when you want

  10. Hey there! Someone in my Myspace group shared this website with us so I came to look it over. I’m definitely loving the information. I’m book-marking and will be tweeting this to my followers! Excellent blog and brilliant style and design.|

  11. we like to honor a lot of other online internet sites around the web, even when they arent linked to us, by linking to them. Beneath are some webpages worth checking out

  12. Great info. Lucky me I found your site by chance (stumbleupon). I’ve bookmarked it for later!

  13. Hey, Great post buddy. Completely enjoyed reading it. Thank you. I wrote this article on my website

  14. This is the right website for everyone who wants to understand this topic. You understand a whole lot its almost tough to argue with you (not that I really would want to…HaHa). You certainly put a brand new spin on a subject that’s been written about for ages. Wonderful stuff, just great.

  15. Here is a good Weblog You might Discover Fascinating that we Encourage You

  16. Hi, I do believe this is an excellent web site. I stumbledupon it ;) I may return yet again since I book-marked it. Money and freedom is the best way to change, may you be rich and continue to help other people.

  17. You are so cool! I don’t suppose I’ve truly read through something like this before. So good to find somebody with some original thoughts on this issue. Seriously.. thank you for starting this up. This web site is something that’s needed on the internet, someone with a little originality.

  18. Every as soon as in a whilst we decide on blogs that we read. Listed below would be the most up-to-date web-sites that we decide on

  19. always a significant fan of linking to bloggers that I adore but do not get quite a bit of link adore from

  20. we came across a cool site that you simply might delight in. Take a appear if you want

  21. Oh my goodness! Amazing article dude! Many thanks, However I am going through troubles with your RSS. I don’t know why I am unable to join it. Is there anybody having similar RSS issues? Anyone that knows the solution will you kindly respond? Thanx.

  22. here are some hyperlinks to web-sites that we link to mainly because we think they’re really worth visiting

  23. we came across a cool internet site that you could love. Take a appear in the event you want

  24. that could be the end of this write-up. Here you will discover some web sites that we assume you will enjoy, just click the links over

  25. The data talked about within the write-up are several of the top offered

  26. although web-sites we backlink to beneath are considerably not connected to ours, we feel they may be actually worth a go by, so have a look

  27. please take a look at the web pages we comply with, like this a single, as it represents our picks in the web

  28. Sites of interest we have a link to

  29. we like to honor numerous other online web-sites around the net, even when they arent linked to us, by linking to them. Underneath are some webpages worth checking out

  30. Here is an excellent Blog You may Find Fascinating that we Encourage You

  31. below you will uncover the link to some internet sites that we assume you must visit

  32. very handful of internet websites that happen to become comprehensive below, from our point of view are undoubtedly properly really worth checking out

  33. always a significant fan of linking to bloggers that I appreciate but dont get quite a bit of link love from

  34. I know this if off topic but I’m looking into starting my own blog and was wondering what all is required to get set up? I’m assuming having a blog like yours would cost a pretty penny? I’m not very web savvy so I’m not 100 positive. Any suggestions or advice would be greatly appreciated. Many thanks

  35. I am often to blogging and i really appreciate your content. The article has really peaks my interest. I am going to bookmark your site and keep checking for new information.

  36. Here are some of the internet sites we suggest for our visitors

  37. very handful of web sites that happen to become in depth beneath, from our point of view are undoubtedly properly worth checking out

  38. Hi there, I discovered your site by way of Google even as looking for a comparable matter, your website got here up, it seems to be great. I have bookmarked it in my google bookmarks.

  39. Every weekend i used to go to see this web site, because i want enjoyment, for the reason that this this web site conations genuinely fastidious funny information too.|

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