2

ブートストラップの init() が完了した後にコードのブロックを実行できるかどうかを簡単に確認できますか?

どのようにそれについて行くのが最善の方法ですか?

接続する必要のある外部システムがいくつかあり、このブロックが完了するまでの間、「サブシステムに接続しています」などの「インデックス」ページを表示したいのですが、完了すると、アプリケーションは通常どおり動作します。

ブートストラップが終わるまでページにアクセスできないと思うのは正しいですか? このサービスの実行中にシステムの他の部分にアクセスする人々を制限する簡単な方法はありますか? これは実現可能だと思いますか?

どんな助けにも乾杯!

4

1 に答える 1

1

ブートストラップはあなたの友達ではないことも指摘したように、あなたの要件に基づいています。画面用のビューとコントローラー、および外部システムへの接続ロジック用のサービスが必要です。また、アプリケーションまたはセッションのスコープ内での通信のサニティ チェックのためのフラグまたはメソッドも必要です。次に、フィルターを作成し、接続があるかどうかを確認することをお勧めします。そうでない場合は、接続するコントローラーにリダイレクトします。須藤:

class ConnectionFilters {
def filters = {
    loginCheck(controller: '*', action: '*') {
        before = {
            if (!session.connection ) {
                redirect(controller:'connection',action: 'connect')
                return false
            }
        }
    }
}

}

class controller {
    def connectionService
    def connect (){
        try {
            connectionService.connectTo('systemx')
            connectionService.connectTo('systemy')
            connectionService.connectTo('systemz')
        }
        catch(e){
            session.connection = false
            redirect view:'error'
        }
        session.connection = true
    }
}


class ConnectionService {
    def connectTo(systemname){
        ....
    }
}
于 2013-04-29T12:50:22.290 に答える