如何在静态块中使用依赖注入?

时间:2019-04-02 22:14:14

标签: spring dependency-injection static derby test-data

我正在尝试生成测试数据以供用户使用Spring应用程序。我想到了在utils包中创建单独的类来做到这一点。我的想法是在该类中创建静态块,创建一些对象并将其与存储库持久化。我面临的问题是我不能使用存储库,因为我不能在静态块内部使用依赖项注入,也不能在代码外部使用存储库。

我的无效想法如下:

public class SampleData {

    @Autowired
    BookRepository bookRepository;

    static{

        List<Book> booksToAdd = Arrays.asList(
                new Book("Pan Tadeusz", "Adam Mickiewicz"),
                new Book("Pożegnanie z Bronią", "Ernest Hemingway")
        );

        for(Book book : booksToAdd){
            bookRepository.save(book);
        }

    }
}

编译器抱怨:bookRepository.save(book);,无法从静态上下文中引用它。您是否认为可以通过某种方式解决?

我知道,也有data.sql文件的方法,但是我不喜欢使用sql,我正在寻找Java解决方案来做到这一点。

0 个答案:

没有答案