2012-02-13 6 views
0

Enhancer를 사용하여 CGLib에서 프록시를 만들 때 .setNamingPolicy(NamingPolicy n)을 호출하여 프록시 클래스 명명 전략을 CGLib 기본값 이외의 것으로 변경할 수 있습니다. ProxyFactory를 사용할 때 Javassist에서 비슷한 것을 할 수있는 방법이 있습니까?Javassist 프록시 명명 정책 수정

답변

2

나는 그것이 불가능하다고 말할 것 ProxyFactory의 코드를 살펴보면 아웃 - 오브 - 박스 이상 : GitHub의에, 그것은 약 6 개월 전처럼 보이는

private static synchronized String makeProxyName(String classname) { 
    return classname + "_$$_javassist_" + counter++; 
} 
+0

그래서 정적 makeProxyName을 호출하는 메서드는 입니다. private void allocateClassName() { classname = makeProxyName (basename); } 아마도 ProxyFactory 자체를 프록시하여 allocateClassName 기능을 원하는 정책에 따라 클래스 이름을 만드는 무언가로 대체 할 수 있습니다. 방금 뭔가 빨리 자갈을 넣으려고했으나 제대로 작동하지 않았습니다. 어떻게 생각해? –

+0

오픈 소스입니다. 이 기능을 구현하고 패치를 제안 하시겠습니까? –

+0

나 자신이 @kevinwelker를하지 않을 수도있다. :) –

0

그들은 형 UniqueName의 added a public field in ProxyFactory 그 대체하여 이름 지정 정책을 변경할 수 있습니다. 처음 질문했을 때 사용할 수 없었습니다.