1.4 第一个工程
1.4.1 step1:创建springboot项目HelloWorld
-
(1)打开File->New->Module…新建模块
-
(2)选择Spring Initializr ,注意SDK使用1.8,点击Next
-
(3)设置工程Group和Artifact,点击Next
-
(4)添加Spring Web Starter依赖,点击Next
-
(5)保存工程
-
(6)项目结构如下图所示:
1.4.2 Step2:理解工程结构
创建完工程之后,我们可以看到工程目录中包含了一个完整的结构,比较重要的目录包括:src、test两个目录分别表示源代码和测试代码所在目录, src/main/java 为java代码路径,其中HelloworldApplication 是App 启动类。src/main/resources/application.properties 为工程配置文件,大多数情况下工程只需要一个配置文件即可。另外,在根目录下我们看到一个pom.xml ,这个文件是maven工程的重要配置文件,主要用于配置工程信息、依赖包、构建插件等(关于Maven知识点可上网查资料,这里不作深入介绍)。我们认真查看一下pom文件有利于理解springBoot的依赖关系:
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zone7.demo</groupId>
<artifactId>helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>helloworld</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-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
从pom文件可确认我们的工程继承至spring-boot-starter-parent的版本号为:2.1.5.RELEASE,SpringBoot的主要依赖包为:spring-boot-starter-web
1.4.3 Step3:配置工程
-
(1)打开配置文件application.properties,Springboot也兼容application.yml
录入:**spring.profiles.active=dev**
spring.profiles.active=dev表示运行模式为开发模式,系统将使用application-dev.properties配置文件。
-
(2)在src/main/resources目录下新建application-dev.properties 配置文件,并添加配置:
**server.port=8080 #端口号为8080**
1.4.4 Step4:开发测试控制层
在com.zone7.demo.helloworld 下创建包sys.controller,这里sys 表示子系统子模块的名称,在实际项目中可以根据功能模块划分包结构。在controller包中新建TestController类。
编写测试代码:
package com.zone7.demo.helloworld.sys.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: zone7
* @Date: 2019/06/17
* @Version 1.0
*/
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/show/{name}")
public String show(@PathVariable String name){
return "hi, " +name +" , 你好!我是 zone7";
}
}
SpringBoot通过给类添加注解 @RestController 表示Java类为控制层类;通过给方法添加@GetMapping 、@PostMapping、@DeleteMapping、@PutMapping 等注解表示http协议的四个操作。也可以给类添加@RequestMapping注解,表示该类下面所有路径都是以该注解的路径开始。例如上例: @RequestMapping("/test")表示TestController类的所有方法对应的url都是以/test开始,
show方法对应的url为:
http://IP:PORT/test/show/{name}。
Mapping注解中的参数{name} 可映射为方法入参。
1.4.5 Step5:运行工程
- (1)java 运行HelloworldApplication
- (2)打开浏览器访问控制层,效果如下图所示:
1.4.6 总结
通过第一个工程的学习,我们了解到Springboot的开发过程主要就是配置、开发、测试三个内容:
- (1) 配置
- pom配置:通过添加依赖增加相关的组件功能。
- application-dev.properties配置:默认情况下springboot的配置文件入口是application.yml 或者application.properties,这里我们对开发过程和生产过程的配置文件进行了分离,后续的案例开发也将延用这个模式。
- 注解配置:通过注解配置系统的安全过滤、日志过滤、全局异常等功能。
- (2) 业务模块开发
根据开发规范开发持久层、服务层、控制层(不同行业、不同团队制定的开发规范也许不同) - (3) 测试