2011-11-14 1 views
2

Google App Engineは定期的にインスタンスを起動および停止するため、定期的にコールドスタート時間が発生するため、XMLを使用してSpring MVC3アプリケーションを構成して、クラスファイルをスキャンして3〜新しいインスタンスがスピンアップされたときにアノテーション設定を使用するときのアノテーション。xml構成ファイルを作成するためにspring MVCアノテーションを使用するにはどうすればよいですか?

xmlを書くことはちょっとした仕事であり、注釈を使用して自分の設定を定義する方がはるかに簡単です。だから私は、両方の世界のベストをして、設定ファイルを生成するために注釈を使用し、実行時にスキャンをオフにしたいと思います。 this questionから、これを行う既存のツールはないようです。

これに最も近い方法は何ですか?おそらく、実行時に春にスキャンを行うクラスがあります。これは設計時にスキャンしてからXMLを吐き出すために再利用できますか?

XML設定では不可能なアノテーション設定から行うことのできる制限事項はありますか?

答えて

1

私は、注釈付きクラスを含むパッケージをスキャンするためにSpringを使用し、次にクラスとそのメソッドで注釈を取得し、それに応じてXMLを書き込むためにリフレクションを使用してこれを行います。

SpringでスキャンするクラスはClassPathScanningCandidateComponentProviderです。使用方法のコードスニペットは次のとおりです。

ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false); 
scanner.addIncludeFilter(new AnnotationTypeFilter(Component.class)); 
for(String packageToScan : packagesToScan) { 
    for (BeanDefinition bd : scanner.findCandidateComponents(packageToScan)) { 
     Class clazz = Class.forName(bd.getBeanClassName()); 
     // Use reflection on clazz to write the XML file 
    } 
} 

これが役立つことを願っています。

+0

ありがとうFelix。実際に正しい注釈をすべてスキャンしてxmlを解析して生成されたオブジェクトを生成したクラスが存在することを期待していました。注釈のバージョンをスキャンしてそのオブジェクトをXMLバージョンを満たすために必要なxml。私は、あなたが推薦するクラスを見て、それがどこに来るかを見ていきます。 –

+1

は、 'ClassPathBeanDefinitionScanner'のように見えますが、私が欲しいものを私に与えるかもしれません。 –

+0

あなたは正しいです、これはより正確です。情報をありがとう。 –

関連する問題