• SpringBoot保姆级教程(二)SpringBoot入门


    目录

    一.通过官网搭建项目

    二.通过IDEA脚手架搭建项目

    三.SpringBoot项目结构

    四.通过Maven搭建项目

    五.编写Java代码


    一.通过官网搭建项目

    接下来我们搭建一个 SpringBoot 项目,并引入 SpringMVC 的功能,
    首先我们可以通过官网搭建项目:
    1
    1. 访问start.spring.io (这是搭建SpringBoot项目的官网)
    2. 2生成SpringBoot项目

    SpringBoot 版本说明:
    • SNAPSHOT:快照版,表示开发版本,随时可能修改;
    • M1Mn):M1milestone的缩写,也就是里程碑版本;
    • RC1RCn):RC1release candidates的缩写,也就是发布预览版;
    • Release:正式版,也可能没有任何后缀也表示正式版
    一般都用里程碑版本和正式版。

    SpringBoot引入的依赖是起步依赖,是一个功能引入一个依赖,而不是一个jar包引入一个依赖。 

    点击上面的生成按钮之后,会自动下载一个官网帮我们搭建的SpringBoot项目的压缩包,解压之后,把解压的文件导入到idea中即可。

    之前学习的时候,普通java程序打的是一个jar包,而web程序打得是一个war包,而这是一个Spring Web项目,但是为什么打得是一个jar包呢,请看下面的打包类型说明:

    SpringBoot打包类型说明:
    使用 SpringMVC 开发的是一个 web 项目,但由于在 SpringBoot 中直接嵌入了 Tomcat
    Web容器,所以所以SpringBoot用Java程序运行就可以了,在使用SpringBoot Web 开发时不需要部署 War 文件,只需要打成 Jar包即可,而war是给Tomcat使的。

    二.通过IDEA脚手架搭建项目

    IDEA 中新建项目,项目类型为 Spring Initializr ,选择 JDK 版本和搭建网站后点击下一步。
    其实这个方式底层也是连接的官网。
    脚手架工具也会访问 SpringBoot 官网进行项目搭建,但SpringBoot官网有时访问速度较慢,我们也可以选择国内的镜像网站 https://start.aliyun.com/ 搭建项目,阿里的脚手架镜像SpringBoot 版本有些滞后,我还是选择了用官网的网址。
    新建一个项目

    三.SpringBoot项目结构

    接下来我们分析 SpringBoot 的项目结构:
    POM 文件
    1
    1. SpringBoot 项目必须继承 spring-boot-starter-parent ,即所有的SpringBoot 项目都是 spring-boot-starter-parent 的子项目。
    spring-boot-starter-parent 中定义了常用配置、依赖、插件等信息,供SpringBoot 项目继承使用。
    1. <parent>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-parentartifactId>
    4. <version>2.7.4version>
    5. <relativePath/>
    6. parent>
    2. SpringBoot 项目中可以定义起步依赖,起步依赖不是以 jar 包为单位,而是以功能为单位。

    这种引入方式使得不必再像之前一样引入那么多依赖,而是现在引入很少的东西即可。 

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.springframework.bootgroupId>
    4. <artifactId>spring-boot-starter-webartifactId>
    5. dependency>
    6. <dependency>
    7. <groupId>org.springframework.bootgroupId>
    8. <artifactId>spring-boot-starter-testartifactId>
    9. <scope>testscope>
    10. dependency>
    11. dependencies>

    3.spring-boot-maven-plugin插件是将项目打包成jar包的插件。

    该插件打包后的 SpringBoot 项目无需依赖 web 容器,可以直接使用JDK 运行。

    1. <build>
    2. <plugins>
    3. <plugin>
    4. <groupId>org.springframework.bootgroupId>
    5. <artifactId>spring-boot-maven-pluginartifactId>
    6. plugin>
    7. plugins>
    8. build>

    如果发生报错(spring-boot-maven-plugin呈红色),请参考这篇文章,我的是添加了个版本号就好了。

    启动类
    启动类的作用是启动 SpringBoot 项目,运行启动类的 main 方法即可启动SpringBoot 项目。
    1. import org.springframework.boot.SpringApplication;
    2. import org.springframework.boot.autoconfigure.SpringBootApplication;
    3. @SpringBootApplication
    4. public class Springbootdemo2Application {
    5. public static void main(String[] args) {
    6. SpringApplication.run(Springbootdemo2Application.class, args);
    7. }
    8. }
    配置文件
    由于 SpringBoot 极大简化了 Spring 配置,所以只有一个application.properties配置文件,且 Spring 的自动配置功能使得大部分的配置都有默认配置,该文件的功能是覆盖默认配置信息,该
    文件不写任何信息都可以启动项目。
    启动后默认端口号为 8080 ,我们可以覆盖该配置:
    然后启动项目

    四.通过Maven搭建项目

    了解了 SpringBoot 结构后,我们也可以使用 Maven 手动搭建SpringBoot项目:
    1
    使用Maven创建普通JAVA项目,注意是普通的项目,idea2022版本如下创建,是不用选Archetype的!
     

    在pom中添加项目的父工程、起步依赖、插件

    1. <parent>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-parentartifactId>
    4. <version>2.7.4version>
    5. parent>
    6. <dependencies>
    7. <dependency>
    8. <groupId>org.springframework.bootgroupId>
    9. <artifactId>spring-boot-starter-webartifactId>
    10. <version>2.7.4version>
    11. dependency>
    12. dependencies>
    13. <build>
    14. <plugins>
    15. <plugin>
    16. <groupId>org.springframework.bootgroupId>
    17. <artifactId>spring-boot-maven-pluginartifactId>
    18. plugin>
    19. plugins>
    20. build>

    编写启动类

    1. import org.springframework.boot.SpringApplication;
    2. import org.springframework.boot.autoconfigure.SpringBootApplication;
    3. @SpringBootApplication
    4. public class SpringBootAPP {
    5. public static void main(String[] args) {
    6. SpringApplication.run(SpringBootAPP.class,args);
    7. }
    8. }
    编写配置文件 application.properties(名字是固定的)
    1. #日志格式
    2. logging.pattern.console=%d{MM/dd HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread] %cyan(%-50logger{50}):%msg%n
    3. #端口号
    4. server.port=8888

    项目结构:

    运行启动类主方法,启动项目

    刷新一下maven,上方就会自动出现服务器

     点击绿色按钮运行即可。

    五.编写Java代码

    之前搭建的 SpringBoot 项目已经都整合了 SpringMVC ,我们编写一个控制器进行测试:
    1. import org.springframework.stereotype.Controller;
    2. import org.springframework.web.bind.annotation.RequestMapping;
    3. import org.springframework.web.bind.annotation.ResponseBody;
    4. @Controller
    5. public class MyController {
    6. @RequestMapping("/hello")
    7. @ResponseBody
    8. public String hello(){
    9. System.out.println("hello springboot!");
    10. return "hello springboot!";
    11. }
    12. }

    在上面的项目结构下,在first下创建一个controller包,再在controller包下新建一个MyController类

    com.first.controller
    启动类在启动时会做注解扫描 (@Controller @Service 、 @Repository......),扫描位置为 同包(在本例中是com.first)或者子包(在本例中是com.first.controller)下 的注解,所以我们要在启动类同级或同级包下编写代码。

    启动项目,访问 http://localhost:8888/hello

    如果前面学的不熟的话,可能看到这里会有一个疑问,当控制类的方法返回值是String类型时,那么返回值不是和视图解析器的前缀和后缀组成了要跳转的页面路径吗???之前确实是那样的,但是这个测试方法上加了@ResponseBody注解,通过看下面的注解解释可知,此注解将返回的对象转换成JSON的格式直接写入数据流当中了,而且使用此注解也不会经过视图解析器。所以直接呈现到了web页面当中。

    @ResponseBody、@RestController将方法返回的对象转为JSON格式。
    作用:方法返回的对象转换为 JSON 格式,并将 JSON 数据直接写入到输出流中,使用此注解后不会再经过视图解析器。使用该注解可 以处理 Ajax 请求。
    位置:方法上方或方法返回值前。

  • 相关阅读:
    基于AI+视频智能分析技术的SkeyeVSS建筑废弃物监管解决方案
    springboot智慧幼儿园管理系统的设计与实现毕业设计源码271611
    洛谷千题详解 | P1009 [NOIP1998 普及组] 阶乘之和【C++、Java、Python、Pascal语言】
    如何设计出优秀的虚拟展厅,设计虚拟展厅有哪些步骤
    Java Static关键字 单例设计模式
    asp.net core之异常处理
    javaee springMVC的简单使用 jsp页面在webapp和web-inf目录下的区别
    LeetCode 2385.感染二叉树需要的总时间:两次搜索(深搜 + 广搜)
    docker运行中的容器新增映射端口
    2022PMP项目管理认证考试报考指南(1)
  • 原文地址:https://blog.csdn.net/weixin_44593822/article/details/127040049