一旦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
答案 0 :(得分:-2)
通常情况下,bean是急切创建的,所以@Autowiring not used beans不是问题。无论如何,他们将使用内存并消耗一些启动时间。
如果你真的不想自动装配,你可以@Autowire org.springframework.beans.factory.BeanFactory并使用getBean来获得所需的存储库。但这是一个可怕的想法。这会将你的@Service绑定到Spring,并且(如果找不到你的存储库)你会迟到(在访问期间)运行时异常,而不是启动异常。