Я прочитал несколько похожих вопросов и ответов, связанных с autowire
и BeanCreationException
, и кажется, что основным источником проблемы обычно является аннотация и дерево проекта в ComponentScan
.Весенний ботинок, Autowire Mongo repo генерирует BeanCreationException
Но я все еще не понимаю, почему мое приложение выдает это исключение. здесь является pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test.game</groupId>
<artifactId>gameP</artifactId>
<version>0.1.0</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>2.0.2-beta</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.0</version>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Применение бегуна с SpringBootApplication
аннотацию
package core.main.exec;
@SpringBootApplication
@Configuration
@ComponentScan("core.main")
public class ApplicationRunner implements CommandLineRunner {
@Autowired
GameEntityRepository repo;
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(ApplicationRunner.class, args);
}
@Override
public void run(String... args) throws Exception {
Game newGame = new Game();
newGame.setId(1213123L);
newGame.setName("halo 123");
newGame.setDeck("Duck");
newGame.setMedium_url("url");
repo.save(newGame);
}
}
И хранилище определяется как сильфона
package core.main.controller;
public interface GameEntityRepository extends MongoRepository {
}
И сущность Монго имени Game
является таким, как сильфонный
package core.main.mongoentity;
@Document
public class Game {
@Id
private Long id;
private String deck;
private String name;
private String medium_url;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDeck() {
return deck;
}
public void setDeck(String deck) {
this.deck = deck;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMedium_url() {
return medium_url;
}
public void setMedium_url(String medium_url) {
this.medium_url = medium_url;
}
}
Как только я запустить приложение я получаю BeanCreationException
со следующим сообщением об ошибке
Не удалось autowire поле: core.main.controller.GameEntityRepository core.main.exec.ApplicationRunner.repo
Я не уверен, почему вы добавили @EnableJpaRepositories аннотацию. Но просто добавление сканирования объекта даст мне новую ошибку, которая говорит об ошибке создания компонента с именем «embeddedServletContainerCustomizerBeanPostProcessor». – Salman9
эта ошибка tomcat, теперь ваши бобы созданы успешно –
В pom нет никакой зависимости tomcat. может быть, я что-то упустил ?! – Salman9