SpringBoot

SpringBoot

1.定义

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot 它本身是包容万象的,可以跟各种技术集成。成为SpringBoot全家桶。

SpringBoot可以理解为框架的框架(工具API)(Spring/SpringMVC/Mybatis),简化框架的调用

2.特点

  • 创建独立的Spring应用程序
  • 嵌入Tomcat、无需部署war文件
  • 简化Maven配置
  • 自动配置Spring
  • 提供生产就绪型功能,如指标、健康检查和外部配置

3.核心思想

开箱即用!!!

SpringBoot与Spring无缝集成

4.框架之间的结构

5.pom.xml文件说明

5.1parent标签作用

<!--1.parent标签作用
          parent标签中规定了Springboot与其他框架整合时候所用到的jar包的版本
          的定义!!!. 这些jar包的版本都是经过官方测试的.几乎不会出现版本冲突.
        总结: 版本的定义!!!
      -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>


5.2maven坐标的作用

<!--2.maven的坐标-->
    <!--项目的组ID-->
    <groupId>com.jt</groupId>
    <!--项目名称 一般都是英文-->
    <artifactId>springboot_demo_1</artifactId>
    <!--版本控制-->
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_demo_1</name>
    <description>Demo project for Spring Boot</description>

5.3项目依赖

<!--jar包文件的依赖   如果需要某些功能,则使用依赖进行导入
            按需导入.
            大部分都进了定义,但是个别的需要手动导入(需要自定版本)        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
5.4build标签作用

<!--maven通过插件对maven版本的springboot进行管理
        体现: 项目打包/发布/测试等相关操作.
    -->
    <build>
        <plugins>
            <!--springboot专门为springboot的工程开发了一款项目管理插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


5.5项目打包相关知识

  • 命令

  • 打包成功的效果

  • clean表示删除target中的目录
  • 一般项目的打包顺序1,build  2,clean  3.install

6.SpringBoot执行流程

6.1SpringBoot的启动流程

SpringBoot中通过元注解来声明注解的作用类型、生命周期、生成文档、以及可以被继承

@SpringBootConfiguration注解标识了主启动类是一个配置类,程序启动时可以加载小的、自定义的配置类

@ComponentScan因为SpringBoot的依赖性多,个别项目不需要,利用exclude来排除个别不需要的

@EnableAutoConfiguration体现了开箱即用原则的配置,进行里两项核心配置

1,@AutoConfigurationPackage动态获取主启动类所在的包路径,按照包路径来定义包扫描的位置,所以代码必须在主启动类的同包及子包下进行定义

2,@Import(AutoConfigurationImportSelector.class)导入加载器,通过加载器使启动项来执行,根据顺序执行加载器,找到对应启动项执行,不需要的加载器即跳过

6.2元注解

说明: 修饰注解的注解 称为元注解.
用法:
@Target(ElementType.TYPE) 注解对谁有效(类/方法/属性)
@Retention(RetentionPolicy.RUNTIME) 什么时期有效 整个运行期间有效
@Documented 是否需要生成文档.
@Inherited 该注解是否可以被继承 可以被继承
6.3@SpringBootConfiguration注解

说明: 该注解标识了main方法的类.相当于告诉程序 主启动类就是一个大的配置类.
将来主启动类执行时,会去扫描所有的小的配置类, 小的配置类由主启动类负责执行并且加载.
统一将对象交给spring容器管理.

6.4@ComponentScan

说明: SpringBoot启动时需要加载很多事先准备好的配置类,但是由于个别导入之后,会导致整个程序运行异常,所以需要排除个别启动项 例如

深入说明:Jar包具有依赖的传递性,通常都会进行引入,如果某些类影响程序,则需要手动排除,而不是排除整个Jar包文件

6.5@EnableAutoConfiguration

说明: 该注解表示自动化的配置.
包含:
1.@AutoConfigurationPackage 动态扫描主启动类的包路径.
注意事项: 以后写代码 在主启动类的同包及子包中编辑.
2.@Import(AutoConfigurationImportSelector.class)

自动化配置: 添加自动化的启动项 等待程序调用

        <dependency>
            <groupId>org.springframework.boot</groupId>

            <!--
                spring-boot-starter: springboot启动项
                SpringBoot官网针对于该框架已经完成了"配置" 用户只需要简单的配置
                既可以使用该功能.
            -->
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

SpringBoot程序启动的流程:

选择选择器执行pom.xml文件中的启动项

6.6SpringBoot的部分启动项输出

Positive matches:
-----------------

   AopAutoConfiguration matched:
      - @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition)

   AopAutoConfiguration.ClassProxyingConfiguration matched:
      - @ConditionalOnMissingClass did not find unwanted class 'org.aspectj.weaver.Advice' (OnClassCondition)
      - @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition)

   DispatcherServletAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition)
      - found 'session' scope (OnWebApplicationCondition)

7.创建SpringBoot项目

7.1创建项目

7.2选则Jar包依赖

 

 

 

 

 

 

 

 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值