软件/环境 | 说明 |
---|---|
操作系统 | Windows 10 |
JDK | 11.0.x |
Spring Boot | 2.3.0.RELEASE |
IDE | IntelliJ IDEA 2019 |
浏览器 | Chrome 80+ |
你可能需要的前置知识/准备工作
https://www.runoob.com/java/java-basic-syntax.html
https://ken.io/serie/java-quickstart
https://baike.baidu.com/item/Spring%20Boot/20249767 https://spring.io/projects/spring-boot
使用Maven模板创建项目
项目模板:maven-archetype-quickstart GroupId:io.ken.springboot.tutorial ArtifactId:helloworld
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
Ctrl + 鼠标左键点击 groupId/artifactId 可以查看引用的Packge的依赖等信息
修改 io.ken.springboot.tutorial.App
@
SpringBootApplication 注解package io.ken.springboot.tutorial;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class);
}
}
package io.ken.springboot.tutorial.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HomeController {
@RequestMapping("/")
@ResponseBody
String index() {
return "Hello World! - ken.io";
}
}
菜单:Run->Edit Configurations
选择 Edit Configurations后会进入启动配置管理
点击+号,选择Spring Boot模板,即可创建Spring 应用的启动配置
选择启动类(Main class),输入配置名称,点击OK即可完成启动配置
启动项目
使用快捷键Shift+F10启动即可 (或者在启动类App编辑区域,使用右键菜单->Run “App”启动)
控制台输出片段:
[main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
[main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
[main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.31]
[main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
[main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 905 ms
[main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
[main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
[main] io.ken.springboot.tutorial.App : Started App in 1.535 seconds (JVM running for 3.263)
从输出的信息可以看出,Spring Boot也是跑在Tomcat中的,关键是本机不用安装也不用做任何Tomcat的配置。就可以跑起来。这一点就很爽了。想知道Spring Boot还依赖了那些组件,在Pom.xml文件中Ctrl+鼠标单击org.springframework.boot即可
访问测试
项目启动后,访问 http://localhost:8080
更换端口运行
在resources目录中新建配置文件application.properties
#监听端口
server.port=8081
项目启动后,访问 http://localhost:8081
,即可
注解 | ken.io的说明 |
---|---|
@SpringBootApplication | 等价于使用@Configuration, @EnableAutoConfiguration 和 @ComponentScan默认属性的情况。 |
@Controller | 用于定义控制器类 |
@RestController | 等价于@ResponseBody和@Controller |
@RequestMapping | 用于定义路由,也就是Url与Controller方法的映射 |
@ResponseBody | 表示将结果直接填充到HTTP的响应体中,用于构建API |
@EnableAutoConfiguration | 将根据添加的jar依赖自动配置Spring,比如我们的应用依赖于spring-boot-starter-web,而它又依赖Tomcat和Spring MVC,有了这个注解,Spring boot将自动进行相关配置 |
@ComponentScan | 表示将该类自动扫描并注册为Bean |
@Configuration | 用于定义配置文件类,可以将配置类替换xml配置 |
Spring官方提供了快速初始化项目的工具:https://start.spring.io/
可以在线选择Spring Boot版本,设置Project Matadata,选择项目依赖,然后点击Generate
按钮下载
https://github.com/ken-io/springboot-tutorial-2.x/tree/master/chapter-01-01