Ich beginne mit dem Lernen Frühling und ich erstelle Basisprojekt, die Datenbank erstellt, Werte einfügen und drucken Sie es im Webbrowser. Mein Problem ist, dass, wenn ich RestController im gleichen Paket wie Hauptklasse habe - es OK, aber ich möchte es auf andere Pakete verteilen und wenn ich ein neues Paket erstellen, verschieben Sie den RestController es funktioniert nicht. Lassen Sie traf erklären:@RestController in anderen Paket funktioniert nicht
Mein Projekt wie folgt aussieht:
|-Springtestv_01
|-src/main/java
|--com.person <-- it's a main package
|-Main.java
|-Person.java
|-PersonLineRunner.java
|-PersonRepository.java
|-PersonController.java
|-com.controller <-- second package, I want put here PersonController.java
|-src/main/resources
|-data.sql
pom.xml
Mein Controller aussieht:
@RestController
public class PersonController {
@Autowired PersonRepository personRepository;
@RequestMapping("/persons")
Collection<Person> persons(){
return this.personRepository.findAll();
}
}
Wenn alles in com.person
Paket ist, schreibe ich in Web-Brower http://localhost:8080/persons und es funktioniert richtig .. Aber ich will verschieben PersonController.java
zu com.controller
Paket, und wenn ich es bewegte, ruft meine Webbrowser mich
Es ist ein unerwarteter Fehler aufgetreten (Typ = Nicht gefunden, Status = 404). Keine Nachricht verfügbar
und ich habe keine Ahnung, was ich tun sollte, um es zu reparieren. Vielleicht sollte ich etwas in meinem pom.xml
ändern ??
Mein pom.xml sieht aus wie
<?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.person</groupId>
<artifactId>person</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SpringTest_v0_1</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.0.BUILD-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.h2database</groupId><artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>
spring-boot-starter-data-elasticsearch
</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
Es wird automatisch generiert, schreibe ich nur eine Abhängigkeit
<dependency>
<groupId>com.h2database</groupId><artifactId>h2</artifactId>
</dependency>
Fügen Sie bitte spring context.xml hinzu – Natalia
Ich schätze, Sie haben einen Komponentenscan für das Paket 'com.person' definiert, aber nicht für andere Pakete. – hotzst
Wo kann ich einen Komponentenscan für andere Pakete definieren? – czArek