今天突然觉得,使用springboot一年多了,但是springboot提供的很多东西都不知道,往往在网上查了好久之后最终的解决方案还是在spring的官网上springboot的文档中找到的,所以打算系统的学习下springboot的官方文档。
看下当前的官方版本:
release版最新的是1.5.6,2.0的是M3,文档中是以2.0.0为示例介绍的,所以这里也使用2.0.0.
开发环境要求:
这里jdk最低要求是1.8了,java9都快出了,如果只是为了学习,直接用最新的肯定不会有问题。spring framework5.0(这个不需要太关心),maven3.2+,gradle4.这里我习惯了maven所以就选用maven。我本地的是3.5.
容器部分不需要太关心,因为springboot中的starter内置了tomcat,如果需要用其他的可以切换,这里我选用的是tomcat,所以其他的就不关心了。
官方推荐的开发工具是Spring Boot CLI,我选用的是现在主流的IDEA(也是最近几个月刚接触的)。
现在来创建项目:
在IDEA中依次选择file→new→project
接下来选择如下:
之后的选项:
groupid一般都是包名,starter为项目名称,如果熟悉maven的同学都会很容易理解,参照图示填写之后下一步直接finish就好,如果想改项目位置,在下一步自己选择就好。
现在来看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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 这里是我的项目信息 -->
<groupId>springboot-starter</groupId>
<artifactId>starter1</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 这里是引用的springboot的版本,可以理解为我们下边的一切springboot提供的东西都是从这里继承的 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
</parent>
<!-- 这里我们引用一个starter,这个starter中包含了tomcat -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- 下边这些事springboot的原有备注,看下就好 -->
<!-- (you don't need this if you are using a .RELEASE version) -->
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
</project>
现在开始建写代码,我们的java类必须放在src/main/java这个资源文件夹下,所以我们直接在这里建Java类。
代码:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by pangkunkun on 2017/8/31.
*/
@RestController
@EnableAutoConfiguration
public class Helloworld {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Helloworld.class, args);
}
}
目录结构:
直接运行这个类(右键run Helloworld),然后在浏览器中输入localhost:8080就可以得到“Hello World!”。
这样就建立起一个最简单的springboot项目。
简单的说下这个Java类中的注解。
@RestController:把这个类注册成一个controller,从而能够接受url的调用,这个功能是@Controller的功能,前边的Rest是生命成rest接口,如果不了解rest这个概念的话,建议起网上搜一下。如果这里直接使用@Controller也是可以正常调用的,但是这里返回的时候会报找不到页面的错误。具体不多做解释了,具体可以看下@RestController,这是个组合注解。
@RequestMapping:使用过springmvc的都回很清楚这个注解,用来定义一个URI。
@EnableAutoConfiguration:这个注解是告诉Spring Boot自己去配置spring,这里主要是找到spring-boot-starter-web这个引用,并启用里面的tomcat容器,从而使项目运行起来。后边可能会一直用@SpringBootApplication这个更专业点儿的注解,到时候再说。
今天有点儿晚了,先说这些吧,如果有什么问题,欢迎大家批评指正。