読者です 読者をやめる 読者になる 読者になる

SpringでstaticなフィールドにDIする方法


Spring使っていて、staticなフィールドにDIしたい場合がありまして、Repositoryをどこからでもstaticで参照したいとか・・

で、調べてみると、以下でできました。

@Component
public class StaticRepository {
    private static Repository repository;

    public static Repository getRepository() {
        return repository;
    }
    
    @Autowired(required=true)
    public void setRepository(Repository repository) {
        StaticRepository.repository = repository;
    }
}

setterメソッドにAutowiredアノテーション付けて、フィールドとgetterはstaticにする。でもこれってアリ?なのか??