gpt4 book ai didi

java - Spring boot/Application.java 如何在另一个包中获取 Mongo AbstractMongoConfiguration?

转载 作者:行者123 更新时间:2023-11-29 03:21:44 25 4
gpt4 key购买 nike

我想将我的类(class)组织成包。使用以下示例:

https://spring.io/guides/gs/accessing-data-mongodb/

我在“my.main.package”中有 Application.java我在下面定义了我自己的 AbstractMongoConfiguration 实现:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;

import com.mongodb.Mongo;
import com.mongodb.MongoClient;

@Configuration
public class MyMongoConfig extends AbstractMongoConfiguration{
@Override
@Bean
public Mongo mongo() throws Exception {
return new MongoClient("remotehost:27018");
}

@Override
protected String getDatabaseName() {
return "mydb";
}
}

如果我将该类放在与我的 Application.java 相同的包中,那么它就可以工作。如果我将 MyMongoConfig 放在它自己的包中,即“my.config.package.settings”,那么运行 Application.java 似乎使用默认的 MongoDB 连接设置,而不使用“MyMongoConfig”。为什么我的应用程序在不同的包中时不会自动找到“MyMongoConfig”?有没有正确的方法或可能性来做到这一点而不将它们都放在同一个包中?

最佳答案

It is recommended主要的 Spring Boot 应用程序类位于其他类之上的根包中,以便基础“搜索包”成为根包。将扫描根目录中的所有包以查找配置类。

如果你选择在其他包中放置一些其他的配置类,我相信这些是需要指定的。例如,如果您的主应用程序类在包“demo”中,而您的 Mongo 配置类在包“another.demo”中,则主应用程序类的 @ComponentScan 注释需要如下所示:

@Configuration
@ComponentScan(basePackages={"another.demo", "demo"})
@EnableAutoConfiguration
public class Application {

关于java - Spring boot/Application.java 如何在另一个包中获取 Mongo AbstractMongoConfiguration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23210143/

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