SpringBootは2つの方法で静的メンバー変数を挿入します
@Autowiredアノテーションをsetメソッドに追加し、@ Componentアノテーションをクラス定義に追加します
- 静的変数のsetterメソッドのstaticキーワードを削除する必要があります。そうしないと、注入が失敗します。
@Component
public class RedisClient {
private static Logger logger= Logger.getLogger(String.valueOf(RedisClient.class));
private static RedissonClient redissonClient;
@Autowired(required = true)
public void setRedissonClient(RedissonClient redissonClient){
RedisClient.redissonClient=redissonClient;
logger.info("redisclinet注入完成!");
}
public static void setList(){
redissonClient.getList("one").add("two");
}
}
@PostConstructを達成する方法
- @PostConstructで注釈が付けられたメソッドは、クラスのコンストラクターがロードされた後、つまり、コンストラクターがロードされた後、initメソッドが実行されます。このメソッドは、xmlでinit-methodメソッドとdestroy-methodメソッドを構成するのと似ており、Beanが初期化されてコンテナーが破棄される前にSpringコンテナーが実行する操作を定義します。
@Component
public class RedisClient1 {
@Autowired
private static RedissonClient redissonClient;
private static RedisClient1 redisClient1;
@PostConstruct
public void init() {
redisClient1 = this;
redisClient1.redissonClient= this.redissonClient;
}
}