PlatformTransactionManager 클래스 이름의 비밀?

167 views
Skip to first unread message

Toby Lee

unread,
Jul 9, 2009, 3:40:03 AM7/9/09
to Korea Spring User Group
비밀까지는 아니고.. 스프링 처음 쓸때부터 스프링의 트랜잭션 추상화 인터페이스인 PlatformTransactionManager라는 이름에 대해서 궁금했습니다. TransactionManager는 알겠는데, 왜 Platform~이 붙어있는지, 그 의미는 뭘지가 궁금했죠. 

뭐라고 생각하시나요?

박성철

unread,
Jul 9, 2009, 4:10:13 AM7/9/09
to Korea Spring User Group
저도 늘 궁금해하던 것 입니다.

Platform이 특별한 의미가 있다면 구현체인 DataSourceTransactionManager나
HibernateTransactionManager, JmsTransactionManager 같은 놈들도 Platform이라는 말
이 들어갈 것 같은데 그렇지는 않고...

혹시 원래 TransactionManager를 만들었었는데 범용성이 떨어져 새로 인터페이스를 만든 것이 이놈 아닐까요? 한 동
안 두 인터페이스가 공존하다 하나는 사라지고 말이죠. 다양한 transaction platform(이런 말이 있는지 모르겠지만)
을 아우르는 인터페이스라는 의미에서...

Sewon Ann

unread,
Jul 9, 2009, 4:30:23 AM7/9/09
to ks...@googlegroups.com
요 부분이 좀 힌트가 되지 않을까 싶네요.

http://swik.net/Interface21+2.1

Fortunately, a solution is at hand to allow Spring to maximize the potential of the underlying platform. Spring provides a transaction abstraction–PlatformTransactionManager–that is semantically more complete than JTA but makes no assumptions about its environment. It's a key example of what we call portable service abstractions. Normally you don't use the PlatformTransactionManager directly, because Spring's declarative transaction management gives you a uniquely powerful option for applying programmatic transactions to any POJO, but it is the foundation of both programmatic and declarative transaction management in Spring. Because we don't make any assumptions about the environment, and environmental details don't leak into your code and decrease portability, we can safely tie into platform specifics. We've done this for WebLogic, Oracle have done it for OC4J, and we have now worked with IBM to produce a first-class integration for WebSphere.

밑줄 친 부분에서 뭔가 얘기를 하고 싶은 것 같네용. 저기서 얘기하는 platform 은 transaction 이 돌아가는 platform ( websphere, oc4j, weblogic ) 등을 지칭하는 것이 아닐까 하는 생각입니다. 저런 platform 에 쉽게 묶여서 돌아갈 수 있는 기반을 제공하므로 이름이PlatformTransactionManager 가 된 게 아닐까 하네요.

아, 논리가 빈약해...

다음분이 더 자세히 설명해 주실 겁니다. 하하하

 

2009/7/9 박성철 <gyu...@gmail.com>

Toby Lee

unread,
Jul 9, 2009, 5:09:10 AM7/9/09
to ks...@googlegroups.com
 transaction 이 돌아가는 platform ( websphere, oc4j, weblogic ) 등을 지칭하는 것

스프링 트랜잭션은 WAS가 없어도 잘 동작합니다. 스탠드얼론이나 테스트에서도 잘 돌지요.
따라서 자바 서버 플랫폼이라는 의미는 아닐 것 같습니다.

2009/7/9 Sewon Ann <kin...@gmail.com>

Toby Lee

unread,
Jul 9, 2009, 8:34:59 PM7/9/09
to ks...@googlegroups.com
재밌는 것은 PlatformTransactionManager를 적용한 빈의 이름이나 프로퍼티 이름은 그냥transactionManager이 관례입니다. 관례일 뿐더러 자동으로 그 이름을 찾는 빈들도 많아서.. 반드시 그렇게 해야 하죠.

자세한 내용은 스프링3.0 책에.. -_-;;

2009/7/9 Toby Lee <toby...@gmail.com>

Sewon Ann

unread,
Jul 9, 2009, 8:48:57 PM7/9/09
to ks...@googlegroups.com
기대됩니다 :)

2009/7/10 Toby Lee <toby...@gmail.com>

Sanghyuk Jung

unread,
Aug 22, 2010, 8:26:26 PM8/22/10
to ks...@googlegroups.com

374페이지에 나와있네요 JTA의 것과 헷갈리지말라고 그랬답니다

> 기대됩니다 :)
>
> 2009/7/10 Toby Lee <toby...@gmail.com>
>
>> 재밌는 것은 PlatformTransactionManager를 적용한 빈의 이름이나 프로퍼티 이름은
>> 그냥transactionManager이 관례입니다. 관례일 뿐더러 자동으로 그 이름을 찾는 빈들도 많아서.. 반드시 그렇게 해야 하죠.
>> 자세한 내용은 스프링3.0 책에.. -_-;;
>>
>> 2009/7/9 Toby Lee <toby...@gmail.com>
>>
>> transaction 이 돌아가는 platform ( websphere, oc4j, weblogic ) 등을 지칭하는 것
>>>
>>>
>>> 스프링 트랜잭션은 WAS가 없어도 잘 동작합니다. 스탠드얼론이나 테스트에서도 잘 돌지요.따라서 자바 서버 플랫폼이라는 의미는 아닐

>>> 것 같습니다.
>>>
>>> 2009/7/9 Sewon Ann <kin...@gmail.com>
>>>
>>> 요 부분이 좀 힌트가 되지 않을까 싶네요.
>>>>
>>>> http://swik.net/Interface21+2.1
>>>>
>>>> Fortunately, a solution is at hand to allow Spring to maximize the
>>>>> potential of the underlying platform. Spring provides a transaction
>>>>> abstraction-PlatformTransactionManager-that is semantically more complete

>>>>> than JTA but makes no assumptions about its environment. It's a key example
>>>>> of what we call *portable service abstractions*. Normally you don't use

>>>>> the PlatformTransactionManager directly, because Spring's declarative
>>>>> transaction management gives you a uniquely powerful option for applying
>>>>> programmatic transactions to any POJO, but it is the foundation of both
>>>>> programmatic and declarative transaction management in Spring. Because we
>>>>> don't make any assumptions about the environment, and environmental details
>>>>> don't leak into your code and decrease portability, *we can safely tie
>>>>> into platform specifics*. We've done this for WebLogic, Oracle have
>>>>> done it for OC4J<http://blog.interface21.com/main/2007/02/27/oracle-contributing-oracle-application-server-integration-code-to-spring-framework/>,

>>>>> and we have now worked with IBM to produce a first-class integration for
>>>>> WebSphere.
>>>>
>>>>
>>>> 밑줄 친 부분에서 뭔가 얘기를 하고 싶은 것 같네용. 저기서 얘기하는 platform 은 transaction 이 돌아가는
>>>> platform ( websphere, oc4j, weblogic ) 등을 지칭하는 것이 아닐까 하는 생각입니다. 저런 platform
>>>> 에 쉽게 묶여서 돌아갈 수 있는 기반을 제공하므로 이름이PlatformTransactionManager 가 된 게 아닐까 하네요.
>>>>
>>>> 아, 논리가 빈약해...
>>>>
>>>> 다음분이 더 자세히 설명해 주실 겁니다. 하하하
>>>>
>>>>
>>>>
>>>> 2009/7/9 박성철 <gyu...@gmail.com>
>>>>
>>>> 저도 늘 궁금해하던 것 입니다.
>>>>>
>>>>> Platform이 특별한 의미가 있다면 구현체인 DataSourceTransactionManager나
>>>>> HibernateTransactionManager, JmsTransactionManager 같은 놈들도 Platform이라는 말
>>>>> 이 들어갈 것 같은데 그렇지는 않고...
>>>>>
>>>>> 혹시 원래 TransactionManager를 만들었었는데 범용성이 떨어져 새로 인터페이스를 만든 것이 이놈 아닐까요? 한 동
>>>>> 안 두 인터페이스가 공존하다 하나는 사라지고 말이죠. 다양한 transaction platform(이런 말이 있는지 모르겠지만)
>>>>> 을 아우르는 인터페이스라는 의미에서...
>>>>>
>>>>> On 7월9일, 오후4시40분, Toby Lee <tobyi...@gmail.com> wrote:
>>>>> > 비밀까지는 아니고.. 스프링 처음 쓸때부터 스프링의 트랜잭션 추상화 인터페이스인
>>>>> PlatformTransactionManager라는
>>>>> > 이름에 대해서 궁금했습니다. TransactionManager는 알겠는데, 왜 Platform~이 붙어있는지, 그 의미는
>>>>> 뭘지가
>>>>> > 궁금했죠.
>>>>> > 뭐라고 생각하시나요?
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>> >
>>
>
> --~--~---------~--~----~------------~-------~--~----~
> 다음에 가입하셨기에 이 메시지를 보내드립니다. Google 그룹스 "Korea Spring User Group"
> 그룹
> 이 그룹에 게시하려면 다음 주소로 이메일을 보내주십시오. ks...@googlegroups.com
> 이 그룹에서 탈퇴하시려면 다음으로 이메일을 보내주십시오. ksug+uns...@googlegroups.com
> 추가 옵션을 보려면 http://groups.google.co.kr/group/ksug?hl=ko의 그룹을 방문하세
> 요.
> -~----------~----~----~----~------~----~------~--~---
>

Sungchul Park

unread,
Aug 22, 2010, 9:05:07 PM8/22/10
to ks...@googlegroups.com
1년만에 답을 찾았군요. ㅎㅎ
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.

Reply all
Reply to author
Forward
0 new messages