选Maven项目以及JDK
编辑项目名+GroupId,剩下都是默认给好的
项目创建完成后,会默认打开创建Maven项目生成的pom.xml依赖文件
① 构建项目时,只需要添加相应的场景依赖(依赖启动器starter),SpringBoot就会根据添加的场景依赖自动进行配置(自动拉取相关JAR包)
② 通过依赖启动器简化构建配置。在构建过程中无需准备JAR包,只需根据开发所需的场景 来选择引入对应的依赖启动器(starter),在引入的依赖启动器内部已经包含了对应开发场景所需的依赖,并自动下载和拉取相关的JAR包。
在pom.xml中添加 构建SpringBoot项目 和 Web场景开发对应的依赖
①
spring-boot-starter-paren
:项目的统一父项目依赖管理。为什么叫统一父项目依赖管理,因为它就像所有依赖的父亲,它对常用框架的依赖文件进行版本统一管理。
- 例如spring,tomcat等,都有和该spring boot相匹配的版本,所以pom.xml引入依赖文件不需要标注它们的版本号,但是如果pom.xml中的依赖文件不是
spring-boot-starter-paren
管理的,就需要用指定它的版本号
②
spring-boot-starter-web
:提供web开发场景所需的所有依赖,并对这些依赖进行统一管理(但是它们的版本号仍归spring-boot-starter-paren
管理)
<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.0modelVersion>
<groupId>com.wpzgroupId>
<artifactId>chapter01_maven_manualartifactId>
<version>1.0-SNAPSHOTversion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.1.3.RELEASEversion>
parent>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
dependencies>
project>
,将下述代码复制粘贴。<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<mirrorOf>centralmirrorOf>
mirror>
①
@SpringBootApplication
:标记为主程序启动类,能扫描Spring组件并自动配置spring boot
- 这是一个组合注解,其中@AutoConfigurationPackage:获取项目主程序启动类所在的根目录,从而指定后续组件扫描器要扫描的包位置,所以项目主程序类要定义在最外层的根目录位置(也就是子包和类要在主程序启动类所在的包中),这样才能包中定义的类能被组件扫描器扫描
②
SpringApplication.run()
:springboot执行流程是从项目启动入口=>@SpringBootApllication标注的类的main()方法进入,然后执行main()中的SpringApplication.run()
,该方法内部执行两个操作,分别是SpringApplication实例初始化和调用run()启动项目
package com.wpz;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author 王胖子
* @version 1.0
* 1. 解读:如果什么注释都不加,那么该类只是一个普通类,如果想把该类当作
* SpringBoot项目的主程序启动类,则需要在类上添加@SpringBootApplication
* 2. @SpringBootApplication + SpringApplication.run()
*/
@SpringBootApplication//标记该类为主程序启动类
public class ManualChapter01Application {
public static void main(String[] args) {
//启动主程序类:SpringApplication.run
//- 参数为主程序类的编译文件(类名.class) 和 args数组
SpringApplication.run(ManualChapter01Application.class, args);
}
}
com.wpz包下创建controller包,该包中新建HelloController类
编写Controller类
- HelloController类是请求处理控制类,该类中包括请求处理的方法
@RestController组合注解:@Controller+@ResponseBody
=>
该类当作控制层组件添加到Spring容器中 + 该类的方法无法返回JSP页面,会返回JSON字符串@GetMapping("/hello")组合注解:@RequestMapping(method=RequestMethod.GET)
=>
设置方法的访问路径 + 访问方式为Get
package com.wpz.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 王胖子
* @version 1.0
* 1. HelloController类是请求处理控制类,该类中包括请求处理的方法
* 2. 将该类设置成请求处理控制类,hello()设置成请求处理方法
* ① 类上标注:@RestController
* ② 方法上标注:@GetMapping("/hello")
* 3. 解读两个注解:
* ① @RestController组合注解:@Controller+@ResponseBody=>
* 该类当作控制层组件添加到Spring容器中 + 该类的方法无法返回JSP页面,会返回JSON字符串
* ② @GetMapping("/hello")组合注解:@RequestMapping(method=RequestMethod.GET)
* 设置方法的访问路径 + 访问方式为Get
*/
@RestController//请求处理控制类
public class HelloController {
@GetMapping("/hello")//请求处理的方法
public String hello() {
return "wpz say hello Spring Boot";
}
}
点击运行主程序启动类
启动成功后,在控制台会发现SpringBoot项目默认启动的端口号为:8080
在浏览器中输入http://localhost:8080/hello
页面中显示出:请求处理方法中输出的语句
① 第一步:在pom.xml中添加该项目开发场景所需的依赖启动器。springBoot会根据依赖启动器 自动导入需要的JAR包
② 第二步:编写主程序启动类。需要在该类上标注@SpringBootApplication来告诉SpringBoot,这个类就是主程序启动类,接着需要在main()方法中使用SpringApplication.run()启动主程序类,如果不启动主程序类而直接运行,那么springBoot不会继续扫描com.wpz包下的Controller类,也就不会执行请求处理方法了
③ 第三步:编写Controller类。用@Controller或者@RestController标注该类为控制层的类,@GetMapping标注请求处理方法的访问路径以及访问的方式
④ 第四步:运行。运行主程序类,然后在浏览器中输入访问路径。
Spring Initializr 是一个Web应用,它提供了一个基本的项目结构,帮助我们快速构建一个基础的Spring Boot项目
创建新项目:项目类型选Spring Initializr
项目配置信息
package中 根据Group和Artifact定义了 项目创建的包名
项目依赖选择
项目名和路径(默认的)
默认生成的项目目录结构
① File–>Settings–>plugin,搜索Spring Assistant,点击install
②重启Idea再创建项目就有了
在主程序启动类所在的包下创建controller包,包下创建HelloController类
编写HelloController类(和第一种方法中的相同)
package com.wpz.chapter01.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 王胖子
* @version 1.0
* 1. HelloController类是请求处理控制类,该类中包括请求处理的方法
* 2. 将该类设置成请求处理控制类,hello()设置成请求处理方法
* ① 类上标注:@RestController
* ② 方法上标注:@GetMapping("/hello")
* 3. 解读两个注解:
* ① @RestController组合注解:@Controller+@ResponseBody=>
* 该类当作控制层组件添加到Spring容器中 + 该类的方法无法返回JSP页面,会返回JSON字符串
* ② @GetMapping("/hello")组合注解:@RequestMapping(method=RequestMethod.GET)
* 设置方法的访问路径 + 访问方式为Get
*/
@RestController//请求处理控制类
public class HelloController {
@GetMapping("/hello")//请求处理的方法
public String hello() {
return "wpz say hello Spring Boot by Spring Initializr";
}
}
运行成功后,在浏览器中访问http://localhost:8080/hello
① 第一步:使用Spring Initializr创建Spring Boot项目,并完成项目配置、项目依赖、项目名称和路径的选择
② 第二步:写Controller类(和上一种方法一致)
③ 第三步:运行
说明: 使用这种方式构建项目,会自动生成一个项目结构框架,并且主程序启动类和pom.xml自动写好了