4

メール プラグインは、Config.groovy での設定が必要であることが文書化されています。実行時に変更できるように、データベースに保存したいと考えています。そして、これはほんの一例です。

私は読んしかし、これは外部プロパティ ファイルの使用に関するものであり、データベースに設定を保存する必要があります (アプリには管理インターフェイスがあり、監査などがあります)。

ありがとうございました。

4

3 に答える 3

2

はい、できます。を使用した grails ブートストラップ プロセス中にBootstrap.groovy、データベースからプロパティを取得してオーバーライドします。これはプロパティ ファイルのオーバーライドに似ており、それらをデータベースに保存するだけです。

データベース内のプロパティも参照してください

于 2013-10-02T01:35:18.330 に答える
1

値を動的に変更する最初の方法:

grailsApplication.config.grails.mail.put("port",your database fetch value of port)
grailsApplication.config.grails.mail.put("username","your database fetch value of username")
grailsApplication.config.grails.mail.put("password","your database fetch value of username")
grailsApplication.config.grails.mail.put("props","your database fetch value of username")

値を動的に変更する 2 番目の方法:

org.codehaus.groovy.grails.commons.DefaultGrailsApplication

DefaultGrailsApplication クラスは、構成に関するすべての情報を提供します。次のコードを使用して電子メール情報を取得し、動的に変更できます。

def defaultGrailsApplication= new DefaultGrailsApplication()

// to get mails information from Config.groovy
defaultGrailsApplication?.config?.grails.mail?.get("host")
defaultGrailsApplication?.config?.grails.mail?.get("port")
defaultGrailsApplication?.config?.grails.mail?.get("username")
defaultGrailsApplication?.config?.grails.mail?.get("password")
defaultGrailsApplication?.config?.grails.mail?.get("props")


// to change mails information of Config.groovy
defaultGrailsApplication?.config?.grails.mail?.put("host","your database fetch value of host")
defaultGrailsApplication?.config?.grails.mail?.put("port",your database fetch value of port)
defaultGrailsApplication?.config?.grails.mail?.put("username","your database fetch value of username")
defaultGrailsApplication?.config?.grails.mail?.put("password","your database fetch value of username")
defaultGrailsApplication?.config?.grails.mail?.put("props","your database fetch value of username")

次に、この「defaultGrailsApplication」インスタンスを割り当てて、アプリケーションの値を注入する必要があります。次のように grailsApplication が注入された 1 つのクラス サービス Temp.service があると仮定します。

Temp.service

class Temp{
  def grailsApplication

  def your method(){
         please add above code for set value
         grailsApplication = defaultGrailsApplication
  }

}

于 2014-12-19T14:12:30.180 に答える