У меня есть следующий простая структура проекта:Spring - Монго путь к классу конфигурации
Здесь находится реализация этих файлов:
Tryton - загрузочный класс
@SpringBootApplication
public class Tryton {
public static void main(String[] args) {
SpringApplication.run(Tryton.class, args);
}
}
UserRepository - Монгонский репозиторий
public interface UserRepository extends MongoRepository<User, String> {
}
UserController - REST контроллер
@RestController
public class UserController {
private final UserRepository userRepository;
@Autowired
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
}
MongoConfig
@Configuration
@EnableMongoRepositories
@ConfigurationProperties("foo")
class MongoConfig extends AbstractMongoConfiguration {
@Value("${mongodb.host}")
private String host;
@Value("${mongodb.port}")
private int port;
@Value("${mongodb.databaseName}")
private String databaseName;
@Override
protected String getDatabaseName() {
return databaseName;
}
@Override
public Mongo mongo() throws Exception {
return new Mongo(host, port);
}
}
Это очень простое приложение: я впрыснуть UserRepository
в UserController
. Затем я конфигурирую детали подключения MongoDB в MongoConfig
. Теперь все работает нормально. Но когда я перехожу MongoConfig
в /конфиги пакета, то возникает проблема:
А теперь приложение не может начать.
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in com.tryton.controllers.UserController required a bean of type 'com.tryton.repositories.UserRepository' that could not be found.
Action:
Consider defining a bean of type 'com.tryton.repositories.UserRepository' in your configuration.
Почему MongoConfig
изменить расположение делает весна не в состоянии признать UserRepository
как MongoRepository
?
Он все еще не работает. – Humberd
убедитесь, что MongoConfig является общедоступным. – dit
Все еще не работает – Humberd