SpringBoot入门程序1.1:构建SpringBoot项目


Spring Boot简单介绍

  1. spring框架是轻量级的,但它的配置却是重量级的
  2. 所以就在原有spring框架的基础上,通过注解的方式进一步简化spring框架的使用,并基于spring框架开发了全新的spring boot框架,需要说明的是:spring boot不是替代spring的解决方案(因为它本身不具备spring的核心特性和扩展功能,只是用于快速开发新一代基于spring框架的应用)
  3. spring Boot是Spring家族的一个子项目,设计初衷是为了简化Spring的配置
  4. springboot集成了大量常用的第三方配置,使用spring boot开发程序时,几乎是开箱即用(只需很少配置就能完成相应功能)
  5. 优点:①快速构建独立的spring应用 ②通过依赖启动器简化构建时的配置极少的代码生成和xml配置:spring boot内部实现了与spring、以及其他常用第三方库的整合连接,并提供了默认最优化的整合配置,所以基本上不需要额外的配置;在需要自定义配置时,使用java config (java配置类)替换传统的xml配置方式,更便于查看和管理

一、使用Maven方式创建项目

1. 创建Maven项目

选Maven项目以及JDK
在这里插入图片描述
编辑项目名+GroupId,剩下都是默认给好的
在这里插入图片描述
项目创建完成后,会默认打开创建Maven项目生成的pom.xml依赖文件
在这里插入图片描述

2. 添加SpringBoot相关依赖

① 构建项目时,只需要添加相应的场景依赖(依赖启动器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管理的,就需要用<version>指定它的版本号

spring-boot-starter-web提供web开发场景所需的所有依赖,并对这些依赖进行统一管理(但是它们的版本号仍归spring-boot-starter-paren管理)

<?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>com.wpz</groupId>
    <artifactId>chapter01_maven_manual</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 引入 Spring Boot 依赖 -->
    <!-- spring-boot-starter-paren 是springBoo框架 集成项目的统一父类管理依赖,添加后可以使用springBoot相关特性 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>
    <dependencies>
        <!-- 引入 Web 场景依赖启动器 -->
        <!-- spring-boot-starter-web 是springBoo框架对 web开发场景 集成支持的依赖启动器-->
        <!--        内部包含了web开发场景所需的依赖,自动导入springMVC框架相关依赖(JAR包)进行web开发-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

2.1引申:IntelliJ IDEA2020不能自动导入依赖

  1. Idea2020版本不能自动导入依赖了,使用ctrl+shift+o或点击如下图标 导入依赖(导入时间较长需等待)
    在这里插入图片描述
  2. 可以配置 Maven 镜像(拉取依赖时速度更快)
    打开 maven 解压目录,选择 config/settings.xml,找到<mirrors>,将下述代码复制粘贴。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

3. 编写主程序启动类

java目录就是装java源程序的
在这里插入图片描述
编写主程序启动类

@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);
    }
}

4. 创建用于Web访问的Controller

com.wpz包下创建controller包,该包中新建HelloController类
在这里插入图片描述
编写Controller类

  1. HelloController类是请求处理控制类,该类中包括请求处理的方法
  2. @RestController组合注解:@Controller+@ResponseBody=>
    该类当作控制层组件添加到Spring容器中 + 该类的方法无法返回JSP页面,会返回JSON字符串
  3. @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";
    }
}

5. 运行项目

点击运行主程序启动类
启动成功后,在控制台会发现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方式构建Spring项目(推荐)

Spring Initializr 是一个Web应用,它提供了一个基本的项目结构,帮助我们快速构建一个基础的Spring Boot项目

1. 创建Spring Boot项目

创建新项目:项目类型选Spring Initializr
在这里插入图片描述
项目配置信息
package中 根据Group和Artifact定义了 项目创建的包名
在这里插入图片描述
项目依赖选择
在这里插入图片描述
项目名和路径(默认的)
在这里插入图片描述
默认生成的项目目录结构
在这里插入图片描述

1.1引申:解决Intellij IDEA新建Springboot项目没有Spring Initializr选项

① File–>Settings–>plugin,搜索Spring Assistant,点击install
在这里插入图片描述
②重启Idea再创建项目就有了
在这里插入图片描述

2. 创建用于web访问的Controller

在主程序启动类所在的包下创建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";
    }
}


3. 运行项目

运行成功后,在浏览器中访问http://localhost:8080/hello
在这里插入图片描述
在这里插入图片描述

总结

① 第一步:使用Spring Initializr创建Spring Boot项目,并完成项目配置、项目依赖、项目名称和路径的选择
② 第二步:写Controller类(和上一种方法一致)
③ 第三步:运行
说明: 使用这种方式构建项目,会自动生成一个项目结构框架,并且主程序启动类和pom.xml自动写好了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值