Spring Boot Autowired支持CrudRepository

时间:2016-11-28 14:14:29

标签: java spring spring-boot spring-data-jpa

一旦JPA实体全部设置,Spring Boot CrudRepository界面似乎对我很有帮助。我有一种情况,我想根据需要创建这些CrudRepository实例,而不是总是基于@ Autowired注释。例如,在我的用例中,我有一个GUI菜单,其中包含域(或引用)表名列表。根据用户选择的内容,程序将实例化其中一个CrudRepository实现。

如果我使用@Autowired,那么我不得不在代码中找到所有可能的已知实现吗?

一个假设用例:

public interface PublisherRepository extends CrudRepository<Publisher, Long> {
}

public interface AuthorRepository extends CrudRepository<Author, Long> {
}

(我刚才意识到我仍然需要创建这些实体。)

在GUI菜单中,将有&#34; Publisher&#34;,&#34; Author&#34;等,我喜欢基于上述存储库接口创建GUI维护组件。将@Autowired置于跟随或仅动态创建它们是不错的做法?

@Autowired
PublisherRepository publisherRepo;

@Autowired
AuthorRepository authorRepo;

如果有办法创建这些repo实例,请教我如何在Spring Boot中完成?非常感谢您提前分享专业知识!

此致

Student_t

1 个答案:

答案 0 :(得分:-2)

通常情况下,bean是急切创建的,所以@Autowiring not used beans不是问题。无论如何,他们将使用内存并消耗一些启动时间。

如果你真的不想自动装配,你可以@Autowire org.springframework.beans.factory.BeanFactory并使用getBean来获得所需的存储库。但这是一个可怕的想法。这会将你的@Service绑定到Spring,并且(如果找不到你的存储库)你会迟到(在访问期间)运行时异常,而不是启动异常。