• springboot学习


    一、创建

    官网创建方式

    1、进入网页https://spring.io/projects  选择springboot并点击

    2、在新页面拉到底,点击Spring Initializr后,进入创建页面

    3、填写个人配置,Dependencies添加一个Spring Web(看项目需要)

    4、点击generate,将下载的文件解压,导入到idea即可

    问题1:open的项目右侧没有maven

      解决办法:help——find action——查找 Add Maven Projects 并点击——选择pom.xml——ok

    问题2:pom.xml中依赖 spring-boot-maven-plugin报红

      解决办法:复制 spring-boot-starter-parent 的版本号到spring-boot-maven-plugin下面

    idea创建方式

    正常创建时情况如下截图,点击下一步级跟官网创建方式一样了。社区版没有Spring Initializr,后面百度说安装插件Spring Assistant可以代替;

    结果我只找到了插件spring-assistant-@valueToYml,遂放弃,不想浪费时间。官网创建也没差多少

     二、主程序的注解@SpringBootApplication的注解

    1、@ComponentScan
      这个注解在Spring中很重要 ,它对应XML配置中的元素
      作用:自动扫描并加载符合条件的组件或者bean , 将这个bean定义加载到IOC容器中

    2、@SpringBootConfiguration
       SpringBoot的配置类 ,标注在某个类上 , 表示是SpringBoot的配置类
      (1)@Configuration 说明这是一个配置类 ,配置类就是对应Spring的xml 配置文件,  点开这个注解会有如下1个注解
         @Component 说明启动类本身也是Spring中的一个组件而已,负责启动应用!

    3、@EnableAutoConfiguration
      告诉SpringBoot开启自动配置功能,这样自动配置才能生效,  点开这个注解会有如下2个注解
      (1)@AutoConfigurationPackage 自动配置包  点开这个注解会有如下1个注解
          @Import(AutoConfigurationPackages.Registrar.class)   将主启动类的所在包及包下面所有子包里面的所有组件扫描到Spring容器
      (2)@Import(AutoConfigurationImportSelector.class) 给容器导入组件
        点击AutoConfigurationImportSelector 源码,找到getCandidateConfigurations方法;
        这个方法调用了SpringFactoriesLoader 类loadFactoryNames() 方法;
        loadFactoryNames() 方法又调用了loadSpringFactories 方法,在该方法中,自动配置的文件是从META-INF/spring.factories目录拿到的

    spring.factories是spring-boot-autoconfigure-2.5.4.jar包META-INF目录下,保存了很多用于自动配置的JavaConfig类
    org.springframework.boot.autoconfigure.xxx 的配置项,
    通过反射实例化为对应标注了 @Configuration的JavaConfig形式的IOC容器配置类 ,
    然后将这些都汇总成为一个实例并加载到IOC容器中。

    结论:
    1、SpringBoot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值
    2、将这些值作为自动配置类导入容器 , 自动配置类就生效 , 帮我们进行自动配置工作;
    3、整个J2EE的整体解决方案和自动配置都在springboot-autoconfigure的jar包中;
    4、它会给容器中导入非常多的自动配置类 (xxxAutoConfiguration), 就是给容器中导入这个场景需要的所有组件 , 并配置好这些组件 ;
    有了自动配置类 , 免去了我们手动编写配置注入功能组件等的工作;

    参考来源:https://www.cnblogs.com/hellokuangshen/p/12450327.html

    三、主程序

    这个类主要做了以下四件事情,具体见上一个连接
    1、推断应用的类型是普通的项目还是Web项目
    2、查找并加载所有可用初始化器 , 设置到initializers属性中
    3、找出所有的 应用程序监听器, 设置到listeners属性中
    4、推断并设置main方法的定义类,找到运行的主类

    一个只会点点点的测试,有疑问可以在测试群(群号:330405140)问我
  • 相关阅读:
    Codeforces Round #337 (Div. 2) D. Vika and Segments 线段树 矩阵面积并
    HDU 5787 K-wolf Number 数位DP
    python画图
    python文件操作
    python matplotlib绘图
    沟通
    ipython notebook的使用
    生活
    担心承担责任
    Large-scale Scene Understanding (LSUN)
  • 原文地址:https://www.cnblogs.com/yinwenbin/p/15179689.html
Copyright © 2020-2023  润新知