0

以下をscalaに変換するにはどうすればよいですか。

public class JedisDB {
  private static final JedisPool jedisPool = new JedisPool(getJedisPoolConfig());


  public static JedisPoolConfig getJedisPool() {
      // ..
  }

  public int getTest123() {
         jedisPool.getResource();
         // code goes here
  }
}

回答がクラスとコンパニオン オブジェクトを作成するのを見てきましたが、これを行う方法と理由を正確に説明してもらえますか?

コンパニオン オブジェクトで静的変数として公開したいものを作成し、クラスで jedisPool を初期化するために使用される構成ファイルをロードする必要がありますか?

コンパニオン オブジェクトで jedisPool をパブリックまたはプライベートにするオプションはありますか?

また(私の質問への回答に影響を与えるのではなく、追加の利点として)、どこかで読みましたが、これによりパターンがテストを困難にすることを完全には理解していませんでした。回避策はありますか?

4

2 に答える 2

0
lazy val jedisPool : JedisPool = {
   val poolConfig = createPoolConfig(app)
   new JedisPool(poolConfig)
 }

リソースを取得するには

 val j = jedisPool.getResource()

リソースを使い終わったら必ず返却してください。

 jedisPool.returnResource(j)
于 2014-05-22T01:43:15.547 に答える