开始SpringBoot
使用Spring-boot CLI手脚架可以快速创建SpringBoot项目,可以使用IDE内置工具或者命令行工具。
如何创建项目官网和各博客有详细的教程,这里不过多的进行阐述
一般我们首选使用 maven 来管理项目。
HelloWorld
maven会默认编译src/main/java
下的代码,所以我们要在src/main/java/Demo.java
中编写一个程序入口。
package com.testspring.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class DemoApplication {
@RequestMapping("/")
String home(){
return "hello world";
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
使用mvn spring-boot:run
或者使用IDE启动项目可以看到以下内容:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE)
2019-05-30 23:18:26.624 INFO 13662 --- [ main] com.testspring.demo.DemoApplication : Starting DemoApplication on mo.local with PID 13662
2019-05-30 23:18:26.626 INFO 13662 --- [ main] com.testspring.demo.DemoApplication : No active profile set, falling back to default profiles: default
2019-05-30 23:18:27.482 INFO 13662 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2019-05-30 23:18:27.515 INFO 13662 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-05-30 23:18:27.515 INFO 13662 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.17]
2019-05-30 23:18:27.585 INFO 13662 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-05-30 23:18:27.585 INFO 13662 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 915 ms
2019-05-30 23:18:27.769 INFO 13662 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-05-30 23:18:27.945 INFO 13662 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2019-05-30 23:18:27.948 INFO 13662 --- [ main] com.testspring.demo.DemoApplication : Started DemoApplication in 1.558 seconds (JVM running for 2.333)
根据INFO我们可以看见Tomcat将项目启动在来8080端口,我们访问localhost:8080
便可以看见以下输出:
hello world
使用Ctrl+C或者IDE工具关闭项目。
@RestController和@RequestMapping
在上述demo中我们可以看见,@RestController
和@RequestMapping
分别在不同的位置生效,@RestController
告诉程序员和JVM这是一个Rest控制器,用于处理Web请求,而@RequestMapping
提供的是路由信息,请求与路由匹配后进入各自的处理逻辑中。
@SpringBootApplication
实际上@SpringBootApplication
是被 @Configuration
、@EnableAutoConfiguration
、@ComponentScan
注解,这样简化了配置过程。
@Configuration
是一个类级的注解,指明对象是一个Bean源;@EnableAutoConfiguration
是一个类级注解,我们需要将Demo.java
作为参数传给run
命令,这个注解指明对象是主要的Spring组件,并通过args暴露所有的命令行参数;@ComponentScan
为@Configuration
注解的类配置扫描指令。
创建生产环境可用的jar包
- 在pom.xml文件中dependencies节点后添加依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
-
使用命令
mvn package
-
使用
java -jar
来运行jar包就可以启动程序了。