0

grails-app の管理者ロールが実行中のサーバーに「機能」/「プラグイン」を追加して、システムがすぐに利用できるようにする方法を探しています。

ここでより具体的にするために、小さな例を示します。

package domains

abstract class Provider {

    def protected name;
    def protected activated = false;
    def private valid;

    def Provider( providerName ) {
        if( providerName != null ) {
            name = providerName;
            valid = true;
        else valid = false;
    }

    def isValid() { valid }
    def getName() { name }
    def isActivated() { activated }
    def setActivated( bool ) { activaed = bool }

    abstract List<String> search( String searchKey );
}

一部のサブクラス:

package googleprovider

import Provider;

class GoogleProvider extends Provider {

    def GooleProvider( active ) {
        super( "Google" );
        activated = active;
    }

    @Override
    List<String> search( String searchKey ) {
        return ["http://www.google.com"]
    }
}

これで、すべての「プラグイン」/「機能」はプロバイダーから拡張され、ディレクトリ「plugins/providers/」にファイルとして配置されます。

そしてサーバーは、「onAdd」イベントまたはその管理者によってリーシュされた何かで、この GoogleProvider のインスタンスを作成する必要があります。

これができる可能性はありますか?それとも私は完全に夢を見ていますか?それが何らかの形で可能であり、それが私が完全に間違った方向に進んでいるというだけの場合は、教えてください! ;-)

御時間ありがとうございます!

4

1 に答える 1

0

新しいアーティファクトを登録するプラグインを探すことをお勧めします。そうすれば、起動時にこのクラスを検索できます。grails-app にフォルダーを作成して、プロバイダー クラスを格納することもできます。

たとえば、 Grails Dao Artefactsプラグインを参照してください。daos内にフォルダーを作成し、grails-appすべてのクラスを DAO Artefact と見なします。また、クラス (サービスなど) で依存性注入を使用できるようになります。

見るべきいくつかのポイント

詳しくは

于 2013-03-20T13:14:49.823 に答える