创建一个简单Spring Boot使用的应用程序Maven。我给了一个带RestController注释的值,但它不起作用。如果我不使用RestController's 值,它会起作用。我想知道,为什么它不起作用以及 value 在 中有@RestController什么用?
http://localhost:9090/app/hello 这给出了错误
http://localhost:9090/hello 这工作正常
@RestController("/app")注释中的"/app"这个值的目的是什么@RestController?
PS:我知道,我可以@RequestMapping("/app")在 ScraperResource 类上使用。
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
@RestController("/app")
public class ScraperResource {
@GetMapping("hello")
public String testController() {
return "Hello";
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序属性
server.port=9090
Run Code Online (Sandbox Code Playgroud) 我用 Gradle v5.6.4 创建了一个简单的 Spring Boot v2.1.10 应用程序,并尝试在 Docker v18.09.9 中运行它,构建 1752eb3。该应用程序在本地运行,但是当我在 Docker 中运行它时,该网页不会在浏览器中加载。不过,它在 Docker 控制台中正确启动,没有任何错误。
Dockerfile 内容
FROM java:8
EXPOSE 9090:8181
ADD /build/libs/docker-app-0.0.1-SNAPSHOT.jar docker-app-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","docker-app-0.0.1-SNAPSHOT.jar"]
Run Code Online (Sandbox Code Playgroud)
Springboot 应用程序控制器
@RestController
public class Resource {
@GetMapping(value = "/home")
public String home() {
return "<h1>up!!!.....running from docker!!!</h1>";
}
}
Run Code Online (Sandbox Code Playgroud)
Docker 运行命令
:~/java-project/docker-app$ sudo docker run -p 9090:8181 springboot
Docker 控制台输出
:~/java-project/docker-app$ sudo docker run -p 9090:8181 springboot
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ …Run Code Online (Sandbox Code Playgroud)