(一)SpringBoot3---尚硅谷总结

示例Demo:

1、我们先来创建一个空工程:

(一)SpringBoot3---尚硅谷总结_第1张图片

(一)SpringBoot3---尚硅谷总结_第2张图片

2、我们通过Maven来创建一个Module:

(一)SpringBoot3---尚硅谷总结_第3张图片

JDK版本需要选择17以及以上,如果没有的话你就下载一个:

(一)SpringBoot3---尚硅谷总结_第4张图片

(一)SpringBoot3---尚硅谷总结_第5张图片

3、让此Maven项目继承父项目:

       所有的Springboot项目都必须继承自spring-boot-starter-parent



    org.springframework.boot
    spring-boot-starter-parent
    3.0.5

(一)SpringBoot3---尚硅谷总结_第6张图片

这里注意,如果这段代码你是复制的中文文档里面的,一定要看清楚这个版本号,中文文档上的版本号对应的版本可能根本就不存在!!!

4、导入web开发的场景启动器


    
    
        org.springframework.boot
        spring-boot-starter-web
    

所有和Web相关的功能就都引入进来了: 

(一)SpringBoot3---尚硅谷总结_第7张图片

 5、创建Springboot项目的主入口程序:

@SpringBootApplication //这是一个SpringBoot引用
public class MainApplication {
    public static void main(String[] args){
        SpringApplication.run(MainApplication.class,args);
    }
}

6、举例测试:

(一)SpringBoot3---尚硅谷总结_第8张图片

//@ResponseBody注解用于标识一个控制器方法,
// 可以将该方法的返回值作为响应报文的响应体,响应到浏览器

@RestController //等同于:@Controller + @ResponseBody
public class HelloController {
    @GetMapping("/hello")
    public String hello(){
        return "Hello,SpringBoot 3";
    }
}

@ResponseBody:注解用于标识一个控制器方法,可以将该方法的返回值作为响应报文的 

                          响应体,响应到浏览器

@RestController:复合注解

(一)SpringBoot3---尚硅谷总结_第9张图片

7、Springboot还能够简化部署:直接打个包即可

                加入应用打包插件:



    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

7.1 通过Maven把应用进行打包:把项目打成可执行的jar包
               clean和package居然可以多选 

(一)SpringBoot3---尚硅谷总结_第10张图片

7.2 打包成功:把项目打成可执行的jar包

(一)SpringBoot3---尚硅谷总结_第11张图片

7.3 运行成功
  •    运行前记得把在idea运行的此项目停掉,要不然会有端口冲突:
  •    (一)SpringBoot3---尚硅谷总结_第12张图片
  •    我们直接可以在装有JDK17+的服务器上运行了,都不需要安装tomcat(Springboot有内嵌的tomcat),直接回车:

(一)SpringBoot3---尚硅谷总结_第13张图片

(一)SpringBoot3---尚硅谷总结_第14张图片

8、Springboot还能够简化运维:

        修改配置只需在外部创建一个application.properties文件,在这个文件中修改好后,

        重新运行此jar包即可:

8.1 直接在同目录下创建一个空的配置文件,比如说我要修改端口号:

(一)SpringBoot3---尚硅谷总结_第15张图片

8.2 然后重新运行此jar包:端口号已经修改成功了

(一)SpringBoot3---尚硅谷总结_第16张图片

9、Springboot特点总结:

1. 简化整合

导入相关的场景,拥有相关的功能。场景启动器

默认支持的所有场景:Developing with Spring Boot

  • 官方提供的场景:命名为:spring-boot-starter-*
  • 第三方提供场景:命名为:*-spring-boot-starter

场景一导入,万物皆就绪

  •  springboot官方提供的应用启动器会有前缀:spring-boot-starter-***
  •  第三方提供场景:命名为:****-spring-boot-starter

(一)SpringBoot3---尚硅谷总结_第17张图片

2. 简化开发

无需编写任何配置,直接开发业务

3. 简化配置

application.properties

  • 集中式管理配置。只需要修改这个文件就行 。
  • 配置基本都有默认值
  • 能写的所有配置都在: Common Application Properties

4. 简化部署

打包为可执行的jar包。

linux服务器上有java环境。

5. 简化运维

修改配置(外部放一个application.properties文件)、监控、健康检查。

.....

10、Spring Initializr 创建向导

(一)SpringBoot3---尚硅谷总结_第18张图片

(一)SpringBoot3---尚硅谷总结_第19张图片

选择我们当前的springboot需要哪些场景:

(一)SpringBoot3---尚硅谷总结_第20张图片

利用Spring Initializr 创建的项目相对于一键创建好了整个项目结构:

(一)SpringBoot3---尚硅谷总结_第21张图片

(一)SpringBoot3---尚硅谷总结_第22张图片

 11、Springboot的便捷特性都依赖于这两个机制:


                                        依赖管理机制、自动配置机制

思考:

1、为什么导入starter-web所有相关依赖都导入进来?

  • 开发什么场景,导入什么场景启动器。
  • maven依赖传递原则。A-B-C: A依赖B,B依赖C,那么A就拥有B和C
  • 导入场景启动器。 场景启动器就会自动把这个场景的所有核心依赖jar包全部导入进来  

例如:你把web开发的场景启动器spring-boot-starter-web导入进来了,那么所有和Web相关的功能就都引入进来了:

  • (一)SpringBoot3---尚硅谷总结_第23张图片

2、为什么我们导入场景启动器的时候,版本号都不用写:

(一)SpringBoot3---尚硅谷总结_第24张图片

  • 每个boot项目都有一个父项目spring-boot-starter-parent:
  • (一)SpringBoot3---尚硅谷总结_第25张图片
  • parent的父项目是spring-boot-dependencies,在spring-boot-dependencies中管理了相关的依赖以及版本:
  • (一)SpringBoot3---尚硅谷总结_第26张图片
  • 父项目 版本仲裁中心,把所有常见的jar的依赖版本都声明好了。
  • 比如:mysql-connector-j,我们只需要写依赖,不需要管版本:
  • (一)SpringBoot3---尚硅谷总结_第27张图片
  • (一)SpringBoot3---尚硅谷总结_第28张图片

3、自定义版本号

  • 利用maven的就近原则,如果我自己声明了,就用我自己的版本号,没有声明,就用父项目里提供的版本号:
  • (一)SpringBoot3---尚硅谷总结_第29张图片

3.1、直接在当前项目properties标签中声明父项目用的版本属性的key:

(一)SpringBoot3---尚硅谷总结_第30张图片

3.2、直接在导入依赖的时候声明版本:

(一)SpringBoot3---尚硅谷总结_第31张图片

4、第三方的jar包

  • springboot父项目中没有管理的第三方jar包,则需要自行声明版本号,例如:


    com.alibaba
    druid
    1.2.16

(一)SpringBoot3---尚硅谷总结_第32张图片

你可能感兴趣的:(java,开发语言,intellij-idea,mybatis,maven,tomcat,spring)