首页 > 其他分享 >SpringBoot -

SpringBoot -

时间:2023-07-28 21:11:20浏览次数:29  
标签:SpringBoot spring 配置 boot 自动 Spring springboot

1. 环境搭建

1.1 Spring.io 建立项目

通过Spring.io 网站,自动建立一个springboot项目,失败的常见问题列表:

 

1.2 Spring Initializer建立项目

通过IntelliJ Idea 当中的Spring initializer,自动建立一个springboot项目,失败的常见原因列表:

  • 在POM文件当中加入 "spring-boot-stareter-web" 的artifactId,仍然无法启动tomcat,原因是包没有被导入,刷新 Intellij Idea中Maven的Dependencies即可。

Note备注:

  • Spring Boot banner在线生成网站为: https://www.bootschool.net/ascii 
  • @Controller, @RestController 以及 @ResponseBody的区别为 @ResponseBody三种的对比

 2. SpringBoot 自动装配

2.1 pom.xml

  • spring-boot-dependencies: 核心依赖在父工程中
  • 我们在写或者引入一些springboot依赖的时候,不需要指定版本,就因为有这些版本仓库

2.2 启动器Starter

  • 说明了就是Springboot的启动场景,比如说: spring-boot-starter-web,就是帮我们自动导入web环境所有的依赖
  • springboot会将所有的功能场景,都变成一个个的启动器
  • 我们要使用什么功能,只需要找到对应的启动器就可以了,启动器列表为: Spring Boot Reference Documentation
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

2.3 主程序

  • @SpringBootApplication: 标注这个类是一个springboot的应用,包括
    • @SpringBootConfiguration
      • @Configuration: Spring配置类
      • @Component: 说明这也是一个spring的组件
    • @EnableAutoConfiguration:自动配置
      • @AutoConfigurationPackage: 自动配置包
        • @Import(AutoConfigurationPackages.Registrar.class): 自动配置,包注册
      • @Import(AutoConfigurationImportSelector.class): 自动配置导入选择
  • SpringApplication.run(): 将springboot应用启动

2.3.1 @SpringBootApplication分析

 结论:springboot所有自动配置都是在启动的时候扫描并加载,org.springframework.boot:spring-bot-autoconfigure/META-INF/spring.factories所有的自动配置类都在这里面,但是不一定生效,要判断条件是否成立,只要导入了对应的starter,就有对应的启动了,有了启动器,我们自动装配就会身高,然后就配置成功。

  1. springboot在启动的时候,从类路劲下 /META-INF/spring.factories获取指定的值;
  2. 将这些自动配置的类导入容器,自动配置就会生效,帮我们进行自动配置;
  3. 以前我们需要自动配置的东西,现在springboot帮我们做了;
  4. 整个JavaEE,解决方案和自动配置的东西都在spring-boot-autoconfig....jar 这个包下;
  5. 它会把所有需要导入的组件,以类名的方式返回,这些组件就会被添加到容器;
  6. 容器中也会存在非常多的xxxAutoConfiguration的文件,就是这些类给容器中导入了这个场景所需要的所有组件,并自动配置 @Configuration
  7. 有了自动配置类,免去了我们手动编写配置文件的工作。

2.3.2 SpringApplication.run() 分析

 这个类主要做了一下四件事情:

  1. 推断应用的类型是普通的项目还是Web项目
  2. 查找并加载所有可用初始化器,设置到initializers属性中
  3. 找出所有的应用程序监听器,设置到listenners属性中
  4. 推断并设置main方法的定义类,找到运行的主类

 

标签:SpringBoot,spring,配置,boot,自动,Spring,springboot
From: https://www.cnblogs.com/zjfun/p/17585514.html

相关文章

  • SpringBoot实践(十六):mark一个开源商品网站
    特点:前后端分离,vue框架,包含小程序、APP,界面风格类似小米商城;外贸网站源码:CRMEB官网-开源会员管理电商营销系统,助力企业发展!特点:thinkphp,待研究;......
  • Pipeline SpringBoot-deploy-CD
    pipeline{agent{kubernetes{cloud'kubernetes'yaml'''apiVersion:v1Kind:Podspec:imagePullSecrets:-name:harbor-admincontainers:-name:kubectlimage:harbor.oldxu.net/ops/kubectl:1.23.15imag......
  • Pipeline SpringBoot-deploy-CI
    pipeline{agent{kubernetes{cloud'kubernetes'yaml'''apiVersion:v1Kind:Podspec:imagePullSecrets:-name:harbor-adminvolumes:-name:datanfs:server:192.168.1.21path:/da......
  • linux springboot 启动脚本
    简单粗暴的脚本#!/bin/bash#获取进程号pid=`psaux|grep"java-jar"|grep-v"grep"|awk'{print$2}'`echo${pid}if[[$pid-gt0]];then`kill-9$pid`fi`nohupjava-jarboot-nginx.jar>boot-nginx.out2>&1&a......
  • idea启动springboot 出现找不到符号,但是类是明确存在的
     很多小伙伴应该都遇到过这个问题,依赖没问题,对应的类也存在但是启动的时候就报错(通常这种问题是突然就发生,上一次启动还是好好的)错误原因:一般是由于依赖的子模块进行了修改,没有install到本地仓库执行mvninstall之类的命令就可以了解决办法,mvnclean ->mvninstall......
  • springboot上传图片后通过http访问图片
    需要上传图片或pdf文件,放在服务器本地磁盘中,比如window服务器的D:/YG/盘符下,此时想要通过http的方式直接访问图片或pdf 1.图片存储在本地磁盘,实现WebMvcConfigurer接口添加本地静态资源访问过滤2.图片存储在本地磁盘,nginx动静分离  第一种方式:@Configurationpubli......
  • Shiro实战教程(整合SpringBoot,全网最强)
    ​ 本文介绍一个强大的Shiro实战教程,用最简单的代码、最常用的场景让你彻底掌握Shiro的用法,成为Shiro实战高手。本Shiro教程是全网最强的Shiro实战教程。教程地址:Shiro项目实战专栏介绍-自学精灵为什么这个Shiro教程是全网最强?其他资料的特点代码不全,根本运行不起来。不......
  • Sa-Token简单几行代码,优雅的实现 SpringBoot 鉴权
    一、添加依赖二、设置配置文件三、创建测试Controller:登录接口四、创建测试Controller:普通访问接口五、检验当前会话是否已经登录六、路由拦截鉴权七、自定义全局异常拦截添加依赖<dependency><groupId>cn.dev33</groupId><artifactId>......
  • springboot实现链接生成QrCode
    1.注入依赖<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.0</version></dependency><dependency><groupId>com.google.zxing</groupId>......
  • 使用Docker安装Apollo并使用SpringBoot连接配置中心
    上篇文章我们学习了Apollo的本地安装,如果还不会本地安装的朋友可以查看之前的文章进行了解和学习链接地址(https://www.cnblogs.com/eternality/p/17583023.html),本篇我们学习怎么使用Docker安装Apollo及如何使用Java连接Apollo。阅读本篇文章需要了解docker安装容器相关的使用命令,......