第一个SpringBoot项目
最近对spring boot 很感兴趣那么,我们直接做个Demo出来吧,照例Hello World
- 本博文使用IDEA IDE
- 读本文之前应有spring和meven的一些经验
本着最简单的原则,直接到Spring 官网下载一个Demo,当然可以用自己的IDE新建一个meven项目,把SpringBoot依赖加入进去
- 官网地址如下:https://start.spring.io/
直接生成一个Demo下载就好了。
解压到自定义位置,用IDE导入新建的meven项目
选择刚解压好的demo
然后基本上就是一路NEXT 就可以了
导入好了以后我们可以看到
下载好的demo里面有一个DemoApplication,为主线程方法,可以尝试启动一下
会发现启动不起来
"C:\Program Files\Java\jdk1.8.0_131\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6210 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:D:\IntelliJ IDEA 2018.2.1\lib\idea_rt.jar=6211:D:\IntelliJ IDEA 2018.2.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;D:\demo\target\classes;C:\Users\wangzy\.m2\repository\org\springframework\boot\spring-boot-starter\2.0.4.RELEASE\spring-boot-starter-2.0.4.RELEASE.jar;C:\Users\wangzy\.m2\repository\org\springframework\boot\spring-boot\2.0.4.RELEASE\spring-boot-2.0.4.RELEASE.jar;C:\Users\wangzy\.m2\repository\org\springframework\spring-context\5.0.8.RELEASE\spring-context-5.0.8.RELEASE.jar;C:\Users\wangzy\.m2\repository\org\springframework\spring-aop\5.0.8.RELEASE\spring-aop-5.0.8.RELEASE.jar;C:\Users\wangzy\.m2\repository\org\springframework\spring-beans\5.0.8.RELEASE\spring-beans-5.0.8.RELEASE.jar;C:\Users\wangzy\.m2\repository\org\springframework\spring-expression\5.0.8.RELEASE\spring-expression-5.0.8.RELEASE.jar;C:\Users\wangzy\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.4.RELEASE\spring-boot-autoconfigure-2.0.4.RELEASE.jar;C:\Users\wangzy\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.4.RELEASE\spring-boot-starter-logging-2.0.4.RELEASE.jar;C:\Users\wangzy\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\wangzy\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\wangzy\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;C:\Users\wangzy\.m2\repository\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar;C:\Users\wangzy\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;C:\Users\wangzy\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\wangzy\.m2\repository\org\springframework\spring-core\5.0.8.RELEASE\spring-core-5.0.8.RELEASE.jar;C:\Users\wangzy\.m2\repository\org\springframework\spring-jcl\5.0.8.RELEASE\spring-jcl-5.0.8.RELEASE.jar;C:\Users\wangzy\.m2\repository\org\yaml\snakeyaml\1.19\snakeyaml-1.19.jar;C:\Users\wangzy\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar" com.yonyou.demo.DemoApplication
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.4.RELEASE)
2018-08-16 13:31:20.036 INFO 8624 --- [ main] com.yonyou.demo.DemoApplication : Starting DemoApplication on wangzyLife with PID 8624 (D:\demo\target\classes started by wangzy in D:\spring_bootdemo)
2018-08-16 13:31:20.042 INFO 8624 --- [ main] com.yonyou.demo.DemoApplication : No active profile set, falling back to default profiles: default
2018-08-16 13:31:20.107 INFO 8624 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@214b199c: startup date [Thu Aug 16 13:31:20 CST 2018]; root of context hierarchy
2018-08-16 13:31:20.767 INFO 8624 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-08-16 13:31:20.780 INFO 8624 --- [ main] com.yonyou.demo.DemoApplication : Started DemoApplication in 1.101 seconds (JVM running for 2.046)
2018-08-16 13:31:20.783 INFO 8624 --- [ Thread-5] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@214b199c: startup date [Thu Aug 16 13:31:20 CST 2018]; root of context hierarchy
2018-08-16 13:31:20.786 INFO 8624 --- [ Thread-5] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
Process finished with exit code 0
这个时候我们要去pom里面加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
根据资料查阅,导致启动不成功的原因是由于tomcat容易无法运行导致的
增加pom依赖后,右键pom文件-meven-reimport 将依赖文件下载下来
运行后 我们会发现 DemoApplication in 2.416 seconds出来了运行时间,运行成功
2018-08-16 13:33:34.413 INFO 8212 --- [ main] com.yonyou.demo.DemoApplication : Started DemoApplication in 2.416 seconds (JVM running for 3.424)
关于spring boot 的注解先不讲,可以自行google之。
我们写一个controller来简单实现个hello world
package com.yonyou.demo.controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/SpringBootDemo")
public class WangzyController {
@RequestMapping(value = "/{name}", method = RequestMethod.GET)
public String sayWorld(@PathVariable("name") String name) {
return "hello " + name;
}
}
这个时候关掉刚刚运行的服务,重新启动,扫描注解。
这个时候我们可以访问tomcat容器 默认8080端口
http://localhost:8080/SpringBootDemo/wangzy
可以看到这个时候界面显示 hello wangzy 。
@RequestMapping("/SpringBootDemo")
这个注解是http://localhost:8080/ 后面的地址,两者要相同
这个后面传递的是变量value,我们的controller方法里面获取的方法。
搭建一个简单的SpringBoot项目就结束了