折腾:
【未解决】VSCode中用Java的Spring Boot搭建智能电力系统后端框架
期间,先去VSCode中,想办法把官网的demo示例尝试能运行起来。
spring boot
spring boot vscode
算了,还是用VSCode每次打开java文件时的启动页面中,去创建
sprint boot
点击 Create Sprint Boot project
![](https://www.crifan.com/files/pic/uploads/2021/03/bd208bcf36e046cb8fccfab681838617.jpg)
![](https://www.crifan.com/files/pic/uploads/2021/03/be2f5b6b0f384ea28680073df7e52914.jpg)
Spring Initializr extension is recommended to help create Spring Boot projects and manage dependencies.
![](https://www.crifan.com/files/pic/uploads/2021/03/e476fdadcb354e859bc397138a8d63f5.jpg)
![](https://www.crifan.com/files/pic/uploads/2021/03/513bf8b5aa1347b69750db1b3a13b1c6.jpg)
Successfully installed vscjava.vscode-spring-initializr.
![](https://www.crifan.com/files/pic/uploads/2021/03/0c89f63272ec4d85a212011a4c4bc22a.jpg)
就是别人提到的,这个自动帮忙创建sprint boot项目的插件:
vscjava.vscode-spring-initializr
![](https://www.crifan.com/files/pic/uploads/2021/03/ec833ffa34e247c8944d37162afd85d4.jpg)
![](https://www.crifan.com/files/pic/uploads/2021/03/dcdce2960427435b906021fc1e33b8e8.jpg)
选java的
输入:
com.crifan.xxx
![](https://www.crifan.com/files/pic/uploads/2021/03/075d0a288b1642778b62cfd8bde0c049.jpg)
xxx
![](https://www.crifan.com/files/pic/uploads/2021/03/7937e756712c474c8acfa8744434e694.jpg)
还是去网上搜搜:
什么是 project artifact id
spring boot project artifact id
<groupId>com.example</groupId> <artifactId>myproject</artifactId>
”3.1. Advanced options
Below the Artifact form field, you’ll find an “Options” link. If you click on that, you’ll see all the available options. Let’s browse through them quickly:
* Group: project coordinates (id of the project’s group, as referred by the groupId attribute in Apache Maven). Also infers the root package name to use.
* Artifact: project coordinates (id of the artifact, as referred by the artifactId attribute in Apache Maven). Also infers the name of the project
* Name: display name of the project that also determines the name of your Spring Boot application. For instance, if the name of your project is my-app, the generated project will have a MyAppApplication class“
artifact,算是project的name
2.2.2的maven版本:
![](https://www.crifan.com/files/pic/uploads/2021/03/8f4b9001679047c296940a3e103a9292.jpg)
![](https://www.crifan.com/files/pic/uploads/2021/03/86c0b05c14844929a60d992db429431e.jpg)
此处感觉算是:
Spring Web
再去选上:
Spring Boot DevTools
![](https://www.crifan.com/files/pic/uploads/2021/03/ec58c46bfb154b5fae0512f7c0230116.jpg)
![](https://www.crifan.com/files/pic/uploads/2021/03/9826730b060e4f3f85920ec357dac107.jpg)
Enter继续
![](https://www.crifan.com/files/pic/uploads/2021/03/0bb2e9be525e4246b7c2efedfb615648.jpg)
选择好保存路径
![](https://www.crifan.com/files/pic/uploads/2021/03/f644ccd3ae8a4648998b54e0ca0a5364.jpg)
![](https://www.crifan.com/files/pic/uploads/2021/03/8f989b27157941c880ce455f37ed5604.jpg)
Successfully generated. Location: /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx
点击Open,打开独立VSCode窗口:
![](https://www.crifan.com/files/pic/uploads/2021/03/7ce2c36893f044c988fd73bbf4dae8d7.jpg)
➜ xxx git:(master) ✗ pwd /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx ➜ xxx git:(master) ✗ ll total 56 -rw-r--r-- 1 crifan staff 902B 1 15 22:40 HELP.md -rwxr-xr-x 1 crifan staff 9.8K 1 15 22:40 mvnw -rw-r--r-- 1 crifan staff 6.5K 1 15 22:40 mvnw.cmd -rw-r--r-- 1 crifan staff 1.6K 1 15 22:40 pom.xml drwxr-xr-x 4 crifan staff 128B 1 15 22:40 src ➜ xxx git:(master) ✗ tree . . ├── HELP.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main │ ├── java │ │ └── com │ │ └── crifan │ │ └── xxx │ │ └── xxx │ │ └── DemoApplication.java │ └── resources │ ├── application.properties │ ├── static │ └── templates └── test └── java └── com └── crifan └── xxx └── xxx └── DemoApplicationTests.java 16 directories, 7 files
默认生成这些文件。
然后接着就是去看看,怎么调试运行起来spring boot。
去参考:
去pom.xml中加个json库
<dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <scope>test</scope> </dependency>
不过此处故意,删除了xxx
把冗长的路径精简了些
不知道后续是否会出错,先这么弄吧。
或者删除项目,重新建一个?
spring boot restful
【已解决】Spring Boot运行mvnw spring-boot:run没输出
这下至少有输出了:
✗ mvn spring-boot:run [INFO] Scanning for projects... [INFO] [INFO] -------------------< com.crifan:xxx >------------------- [INFO] Building xxx 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/3.1.0/maven-resources-plugin-3.1.0.pom Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/3.1.0/maven-resources-plugin-3.1.0.pom (7.2 kB at 1.8 kB/s) ... Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.5.2/junit-jupiter-engine-5.5.2.jar (220 kB at 3.4 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest/2.1/hamcrest-2.1.jar
![](https://www.crifan.com/files/pic/uploads/2021/03/07edd20e404e417396adffc29300ea04.jpg)
下载速度有点慢
看来需要先去解决
从repo.maven.apache.org下载速度慢的问题
maven下载速度慢的问题
不过后来继续折腾,发现速度还不错:
直到最后build成功了:
➜ projects cd xxx/src/server/xxx/xxx ➜ xxx git:(master) ✗ mvn spring-boot:run [INFO] Scanning for projects... [INFO] [INFO] -------------------< com.crifan:xxx >------------------- [INFO] Building xxx 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] >>> spring-boot-maven-plugin:2.2.2.RELEASE:run (default-cli) > test-compile @ xxx >>> Downloading from central: https://repo.maven.apache.org/maven2/org/assertj/assertj-core/3.13.2/assertj-core-3.13.2.jar Downloading from central: https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.4/byte-buddy-1.10.4.jar Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.2.2.RELEASE/spring-core-5.2.2.RELEASE.jar Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.2.2.RELEASE/spring-test-5.2.2.RELEASE.jar Downloading from central: https://repo.maven.apache.org/maven2/org/xmlunit/xmlunit-core/2.6.3/xmlunit-core-2.6.3.jar Downloaded from central: https://repo.maven.apache.org/maven2/org/xmlunit/xmlunit-core/2.6.3/xmlunit-core-2.6.3.jar (168 kB at 73 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar Downloaded from central: https://repo.maven.apache.org/maven2/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar (223 kB at 38 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/2.3/json-smart-2.3.jar Downloaded from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/2.3/json-smart-2.3.jar (120 kB at 13 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar Downloaded from central: https://repo.maven.apache.org/maven2/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar (30 kB at 3.1 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.2.2.RELEASE/spring-test-5.2.2.RELEASE.jar (678 kB at 64 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.7.29/slf4j-api-1.7.29.jar Downloaded from central: https://repo.maven.apache.org/maven2/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar (53 kB at 5.0 kB/s) Downloaded from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.7.29/slf4j-api-1.7.29.jar (41 kB at 3.5 kB/s) Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.2.2.RELEASE/spring-core-5.2.2.RELEASE.jar (1.4 MB at 41 kB/s) Downloaded from central: https://repo.maven.apache.org/maven2/org/assertj/assertj-core/3.13.2/assertj-core-3.13.2.jar (4.5 MB at 62 kB/s) Downloaded from central: https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.4/byte-buddy-1.10.4.jar (3.3 MB at 35 kB/s) [INFO] [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ xxx --- Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-filtering/3.1.1/maven-filtering-3.1.1.pom Downloaded from central: ... https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-utils/3.0.0/maven-shared-utils-3.0.0.jar (155 kB at 29 kB/s) Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar (262 kB at 24 kB/s) [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ xxx --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 2 source files to /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/classes [INFO] [INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ xxx --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ xxx --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/test-classes [INFO] [INFO] <<< spring-boot-maven-plugin:2.2.2.RELEASE:run (default-cli) < test-compile @ xxx <<< [INFO] [INFO] [INFO] --- spring-boot-maven-plugin:2.2.2.RELEASE:run (default-cli) @ xxx --- Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-loader-tools/2.2.2.RELEASE/spring-boot-loader-tools-2.2.2.RELEASE.pom Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-loader-tools/2.2.2.RELEASE/spring-boot-loader-tools-2.2.2.RELEASE.pom (2.5 kB at 6.7 kB/s) ... Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-dependency-tree/3.0.1/maven-dependency-tree-3.0.1.jar Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/3.7.0/plexus-archiver-3.7.0.jar (192 kB at 5.6 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/org/vafer/jdependency/2.1.1/jdependency-2.1.1.jar Downloaded from central: https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/7.0/asm-analysis-7.0.jar (33 kB at 967 B/s) Downloading from central: https://repo.maven.apache.org/maven2/org/ow2/asm/asm-util/7.0-beta/asm-util-7.0-beta.jar Downloaded from central: https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/7.0/asm-commons-7.0.jar (80 kB at 2.3 kB/s) Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-dependency-tree/3.0.1/maven-dependency-tree-3.0.1.jar (37 kB at 1.0 kB/s) Downloaded from central: https://repo.maven.apache.org/maven2/org/ow2/asm/asm-util/7.0-beta/asm-util-7.0-beta.jar (81 kB at 2.2 kB/s) Downloaded from central: https://repo.maven.apache.org/maven2/org/vafer/jdependency/2.1.1/jdependency-2.1.1.jar (186 kB at 4.6 kB/s) Downloaded from central: https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.13/commons-codec-1.13.jar (344 kB at 7.6 kB/s) [INFO] Attaching agents: [] . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.2.2.RELEASE) 2020-01-18 20:48:05.030 INFO 19665 --- [ restartedMain] com.crifan.xxx.Greeting : Starting Greeting on licrifandeMacBook-Pro.local with PID 19665 (/Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/classes started by crifan in /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx) 2020-01-18 20:48:05.036 INFO 19665 --- [ restartedMain] com.crifan.xxx.Greeting : No active profile set, falling back to default profiles: default 2020-01-18 20:48:05.118 INFO 19665 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2020-01-18 20:48:05.118 INFO 19665 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2020-01-18 20:48:06.070 INFO 19665 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2020-01-18 20:48:06.094 INFO 19665 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2020-01-18 20:48:06.095 INFO 19665 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.29] 2020-01-18 20:48:06.177 INFO 19665 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2020-01-18 20:48:06.178 INFO 19665 --- [ restartedMain] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1060 ms 2020-01-18 20:48:06.237 WARN 19665 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'greeting': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'long' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 2020-01-18 20:48:06.240 INFO 19665 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2020-01-18 20:48:06.256 INFO 19665 --- [ restartedMain] ConditionEvaluationReportLoggingListener :
但是后面报错了:
【已解决】java的spring boot程序报错:Parameter 0 of constructor in required a bean of type long that could not be found
【已解决】启动Spring Boot出错:Parameter 0 of constructor in Greeting required a bean of type long that could not be found
注:如果不加ServingWebContentApplication.java则
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.2.2.RELEASE:run (default-cli) on project xxx: Unable to find a suitable main class, please add a 'mainClass' property -> [Help 1]
即,找不到main class,无法运行。
现在再去运行
mvn spring-boot:run
至少正常运行了:
✗ mvn spring-boot:run [INFO] Scanning for projects... [INFO] [INFO] -------------------< com.crifan:xxx >------------------- [INFO] Building xxx 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] >>> spring-boot-maven-plugin:2.2.2.RELEASE:run (default-cli) > test-compile @ xxx >>> [INFO] [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ xxx --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ xxx --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 3 source files to /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/classes [INFO] [INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ xxx --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ xxx --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/test-classes [INFO] [INFO] <<< spring-boot-maven-plugin:2.2.2.RELEASE:run (default-cli) < test-compile @ xxx <<< [INFO] [INFO] [INFO] --- spring-boot-maven-plugin:2.2.2.RELEASE:run (default-cli) @ xxx --- [INFO] Attaching agents: [] . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.2.2.RELEASE) 2020-01-31 11:29:39.751 INFO 15591 --- [ restartedMain] c.c.s.ServingWebContentApplication : Starting ServingWebContentApplication on licrifandeMacBook-Pro.local with PID 15591 (/Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/classes started by crifan in /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx) 2020-01-31 11:29:39.754 INFO 15591 --- [ restartedMain] c.c.s.ServingWebContentApplication : No active profile set, falling back to default profiles: default 2020-01-31 11:29:39.810 INFO 15591 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2020-01-31 11:29:39.810 INFO 15591 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2020-01-31 11:29:40.790 INFO 15591 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2020-01-31 11:29:40.802 INFO 15591 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2020-01-31 11:29:40.802 INFO 15591 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.29] 2020-01-31 11:29:40.875 INFO 15591 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2020-01-31 11:29:40.876 INFO 15591 --- [ restartedMain] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1066 ms 2020-01-31 11:29:41.070 INFO 15591 --- [ restartedMain] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2020-01-31 11:29:41.230 INFO 15591 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2020-01-31 11:29:41.304 INFO 15591 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2020-01-31 11:29:41.310 INFO 15591 --- [ restartedMain] c.c.s.ServingWebContentApplication : Started ServingWebContentApplication in 2.184 seconds (JVM running for 2.636)
![](https://www.crifan.com/files/pic/uploads/2021/03/172fa3a8efcb434cbcc0633b8a541a3b.jpg)
然后看看能否去测试
访问
结果报错:
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Jan 31 11:34:22 CST 2020 There was an unexpected error (type=Not Found, status=404). No message available
![](https://www.crifan.com/files/pic/uploads/2021/03/718f9ef3dca84293b5f347046e105a95.jpg)
换去访问
就可以了:
![](https://www.crifan.com/files/pic/uploads/2021/03/4b4c3d8e65214da9b7ef951edbac17ad.jpg)
第二次再去访问,即可新增id为2
![](https://www.crifan.com/files/pic/uploads/2021/03/12df70b275f64f9ab1439992e599d072.jpg)
加上name,则也可以正常解析
![](https://www.crifan.com/files/pic/uploads/2021/03/9416d93ac55446e8ad08ef036ce5b764.jpg)
另外,给首页中加了静态html
src/server/xxx/xxx/src/main/resources/static/index.html
<!DOCTYPE HTML> <html> <head> <title>Getting Started: Serving Web Content</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <p>Get your greeting <a href="/greeting">here</a></p> </body> </html>
后,再去访问主页,就可以了:
![](https://www.crifan.com/files/pic/uploads/2021/03/5a2ff5b3a21c401c8a5fe498d248f529.jpg)
再去试试maven打包jar,再用java运行jar
➜ xxx git:(master) ./mvnw clean package
和之前一样,又是没输出
换mvn
mvn clean package
期间要下载很多包
mvn clean package [INFO] Scanning for projects... [INFO] [INFO] -------------------< com.crifan:xxx >------------------- [INFO] Building xxx 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]---------------------------------Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/3.1.0/maven-clean-plugin-3.1.0.pom Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/3.1.0/maven-clean-plugin-3.1.0.pom (5.2 kB at 4.1 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.22.2/maven-surefire-plugin-2.22.2.pom Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.22.2/maven-surefire-plugin-2.22.2.pom (5.0 kB at 6.1 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.22.2/surefire-2.22.2.pom Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.22.2/surefire-2.22.2.pom (26 kB at 34 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar-plugin/3.1.2/maven-jar-plugin-3.1.2.pom Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar-plugin/3.1.2/maven-jar-plugin-3.1.2.pom (7.3 kB at 21 kB/s) [INFO] [INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ xxx --- [INFO] Deleting /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target [INFO] [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ xxx --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ xxx --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 3 source files to /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/classes [INFO] [INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ xxx --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ xxx --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/test-classes [INFO] [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ xxx --- Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/maven-surefire-common/2.22.2/maven-surefire-common-2.22.2.pom ... . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.2.2.RELEASE) ... [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.676 s - in com.crifan.xxx.GreetingTests 2020-01-31 12:39:59.309 INFO 19104 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] [INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ xxx --- ... [INFO] Building jar: /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/xxx-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.2.2.RELEASE:repackage (repackage) @ xxx --- [INFO] Replacing main artifact with repackaged archive [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:14 min [INFO] Finished at: 2020-01-31T12:40:13+08:00 [INFO] ------------------------------------------------------------------------
生成jar了:
![](https://www.crifan.com/files/pic/uploads/2021/03/738a622678aa46b08403864f79a253d8.jpg)
去运行
java -jar target/xxx-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.2.2.RELEASE) 2020-01-31 12:42:02.965 INFO 19264 --- [ main] c.c.s.ServingWebContentApplication : Starting ServingWebContentApplication v0.0.1-SNAPSHOT on licrifandeMacBook-Pro.local with PID 19264 (/Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx/target/xxx-0.0.1-SNAPSHOT.jar started by crifan in /Users/crifan/dev/dev_root/projects/xxx/src/server/xxx/xxx) 2020-01-31 12:42:02.983 INFO 19264 --- [ main] c.c.s.ServingWebContentApplication : No active profile set, falling back to default profiles: default 2020-01-31 12:42:04.648 INFO 19264 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2020-01-31 12:42:04.680 INFO 19264 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2020-01-31 12:42:04.681 INFO 19264 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.29] 2020-01-31 12:42:04.828 INFO 19264 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2020-01-31 12:42:04.828 INFO 19264 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1729 ms 2020-01-31 12:42:05.286 INFO 19264 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2020-01-31 12:42:05.447 INFO 19264 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2020-01-31 12:42:05.633 INFO 19264 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2020-01-31 12:42:05.638 INFO 19264 --- [ main] c.c.s.ServingWebContentApplication : Started ServingWebContentApplication in 3.507 seconds (JVM running for 4.115)
![](https://www.crifan.com/files/pic/uploads/2021/03/8106a25a3619433d807625c1b51f54c5.jpg)
测试输出也是正常的:
![](https://www.crifan.com/files/pic/uploads/2021/03/c18c08b213794fcdae0fe07260bb03e9.jpg)
说明和之前运行
mvn spring-boot:run
是一样的。
【总结】
最后,此处可以正常工作的配置和代码是
1.创建Spring Boot模板项目:
(1)安装插件
VSCode的Java启动页->Start->Create Sprint Boot project->Install
(2)创建模板项目
VSCode的Java启动页->Start->Create a Sprint Boot Project->选 Java -> 输入项目包名:com.crifan.xxx ->选上 Spring Web和Spring Boot DevTools-》Enter回车继续-》选择项目保存路径
2.添加配置
src/server/xxx/xxx/.project
<?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>xxx</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.m2e.core.maven2Builder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.m2e.core.maven2Nature</nature> </natures> </projectDescription>
src/server/xxx/xxx/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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.crifan</groupId> <artifactId>xxx</artifactId> <version>0.0.1-SNAPSHOT</version> <name>xxx</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
3.输入代码
src/server/xxx/xxx/src/main/java/com/crifan/xxx/Greeting.java
package com.crifan.xxx; public class Greeting { private final long id; private final String content; public Greeting(long id, String content) { this.id = id; this.content = content; } public long getId() { return id; } public String getContent() { return content; } }
src/server/xxx/xxx/src/main/java/com/crifan/xxx/GreetingController.java
package com.crifan.xxx; import java.util.concurrent.atomic.AtomicLong; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @RestController public class GreetingController { private static final String template = "Hello, %s!"; private final AtomicLong counter = new AtomicLong(); @GetMapping("/greeting") public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) { return new Greeting(counter.incrementAndGet(), String.format(template, name)); } }
src/server/xxx/xxx/src/main/java/com/crifan/xxx/ServingWebContentApplication.java
package com.crifan.xxx; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ServingWebContentApplication { public static void main(String[] args) { SpringApplication.run(ServingWebContentApplication.class, args); } }
src/server/xxx/xxx/src/main/resources/static/index.html
<!DOCTYPE HTML> <html> <head> <title>Getting Started: Serving Web Content</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <p>Get your greeting <a href="/greeting">here</a></p> </body> </html>
4.运行
cd src/server/xxx/xxx
直接调试:
mvn spring-boot:run
或:
mvn clean package
生成jar包:
target/xxx-0.0.1-SNAPSHOT.jar
后,再去运行
java -jar target/xxx-0.0.1-SNAPSHOT.jar
5.测试输出
浏览器中访问
- http://localhost:8080/
- 可以看到html页面
- http://localhost:8080/greeting
- 可以看到输出json字符串
- postman访问也是正常的:
- 多次访问,id会自增
- http://localhost:8080/greeting?name=crifan
- 加上name参数,可以返回对应字符串
【后记】
中解释了,不同的项目的配置的模拟
比如我们此处的是
- spring-boot-starter-web
- 作用:
- Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container
- pom配置
更多内容详见:
转载请注明:在路上 » 【已解决】VSCode中搭建Spring Boot的示例程序