gpt4 book ai didi

spring-boot - Spring Boot 发现在另一个包上 Autowiring

转载 作者:行者123 更新时间:2023-12-03 12:10:38 24 4
gpt4 key购买 nike

我正在开发一个使用一些 Spring Data Repository 接口(interface)的 Spring Boot 应用程序:

package test;
@SpringBootApplication
public class Application implements CommandLineRunner {

@Autowired
private BookRepository repository;
. . .
}

我可以看到 BookRepository 接口(interface)(如下所示)只有在与 Application 类位于同一包中时才能注入(inject):
package test;
public interface BookRepository extends MongoRepository<Book, String> {

public Book findByTitle(String title);
public List<Book> findByType(String type);
public List<Book> findByAuthor(String author);

}

我可以在我的类上应用任何 Spring Boot 注释以便能够在另一个包中找到 BookRepository 吗?

最佳答案

使用 Spring @ComponentScan SpringBoot 旁边的注释 @SpringBootApplication并配置自定义基础包(您可以指定包名称列表或将使用其包的类列表),例如

@SpringBootApplication
@ComponentScan(basePackages = {"otherpackage", "..."})
public class Application

或者
@SpringBootApplication
@ComponentScan(basePackageClasses = {otherpackage.MyClass.class, ...})
public class Application

或因为 Spring 1.3.0 (Dec. 2016),你可以直接写:
@SpringBootApplication(scanBasePackageClasses = {otherpackage.MyClass.class, ...})
public class Application

请注意,组件扫描将在给定包的内部和下方找到类。

关于spring-boot - Spring Boot 发现在另一个包上 Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30425016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com