2012-02-13 6 views
0

エンハンサーを使用して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

これらのタイプの固有名のadded a public field in ProxyFactoryこと置き換えて名前付けポリシーを変更することができます。これは、質問が最初に尋ねられたときには利用できませんでした。