2009-08-27 14 views
4

いくつかの簡単なタスクを実行するために、Springアプリケーション(Webアプリケーションではない)を作成しようとしています。結局、彼らはネットワークの周りのいくつかの他のSpringアプリケーションに接続するでしょうが、今のところ私はそれを簡単に保っています。私はCheckForNewItemsクラス(Timerを拡張する)を10秒ごとに実行するように設定しています。Spring:Web以外の簡単なチュートリアルはありますか?

public class Tester { 

    public static ApplicationContext context; 

    private void loadContext() { 
    String filename = "beans.xml"; 
    context = new FileSystemXmlApplicationContext(filename); 
    } 

    public static void main(String[] args) { 
    Tester test = new Tester(); 
    test.loadContext(); 
    CheckNewItemsTask task = (CheckNewItemsTask)context.getBean("checkNewItemsTask"); 
    } 
} 

は期待通り、この作品実行、task.run()は、10秒ごとに呼び出されます:私はそれを確認することができ

は、プログラムでそれを呼び出すことによって実行されます。これをJBossサーバーまたはTomcatサーバーに展開して、自動的にタスクの実行を開始する方法を検討する必要があります。

私が見つけたチュートリアルのほとんどは、スタンドアロンアプリケーションではなく、Spring MVCとサーブレットの実行方法を説明しています。誰かがよく知っていますか?

Cheers、Rob。

+0

私は混乱しています。スタンドアロンアプリケーションをApplication Serverで実行したいこの縫い目は私の矛盾のようです。 –

+0

私がスタンドアロンと言うとき、私はウェブではなく、他のアプリに接続せず、ただそこに座って座っていることを意味します。 –

答えて

1

デプロイ時に自動起動するように設定されたサーブレットが必要です。その後、サーブレットは "Tester"クラスを呼び出して、 "スタンドアロン"初期化プロセスを開始できます。

サーブレット(または他のサーバー関連のプロセスでもある)がコードを参照していない場合、初期化プロセスは実行されません。

+1

しかし、確かにサーブレットはウェブのコンセプトですか? Testerを実行する必要はありません。ロードして実行する必要があります。 –

+1

@Robert - 「確かに、サーブレットはWebコンセプトですか?」 - 誰も気にしない?あなたはここでのポイントを見逃しているようです... Web関連のものを何も持たずにSpringを初期化する(アプリケーションサーバー固有の)方法がたくさんあります。しかし、初期化して実行するためにSpringを呼び出すこと以外は何もしないサーブレットは、このようなタスクを総称的に自動初期化する最良の方法です。サーブレットは一般的にWeb関連のものに使用されますが、それだけではありません。私はまさにこの理由のためにBatchInitServletクラスを構築しました。 – jsight

+2

「誰が気に? - サーブレットコンテナスタック全体をコードベースに入れなくても、IoCコンテナの利点を得ることを望む人。 @Robert:Webスタックの外側でSpringを使用する例は、この[Spring documentation](http://www.springbyexample.org/examples/intro-to-ioc-creating-a-spring-application.html)を参照してください。 。 – demaniak

6

JBossやTomcatを使用する必要はありません。アプリがヘッドレスで、UIを追加するつもりがない場合は、Windowsの場合はjsvc、UNIXの場合はprocrunと考えてください。アプリケーションの監視と制御を行う必要があり、それを実行するための適切なUIが必要ない場合は、JMXを参照することをお勧めします。これは、Java EEスタックの残りの部分がないデーモン上で動作します。

もしあなたがmavenプロジェクトを持っていて、簡単にデプロイ可能なデーモンアプリにするには、maven appassemblerを使って、デプロイ可能なデーモンの作成、アプリケーションのディレクトリ構造の設定、スクリプトの開始ライブラリと設定ファイルを停止します。

関連する問題