spring boot 学习(搭建spring boot与原理)02

搭建springboot

spring boot项目有多种搭建的方式,我比较喜欢的方式有两种。
1.通过官网的代码生成器来构建项目
https://start.spring.io/
在这里插入图片描述填写适合自己的信息,选择自己所需要的依赖,然后点击CENERATE来下载文件项目生成后将压缩包放到自己的workspace下进行解压,再在sts-ecilpse中选择file-import进行导入即可

2.通过sts插件来构建项目

这一种比较简单方便,直接打开sts-ecilpse新建,需要在联网的环境下进行。

在这里插入图片描述

根据所需要的进行配置即可

SpringBoot的工作机制

为什么在spring boot中手动编写一个类,而且这个类没有配置文件,但可以访问类中的方法,springboot是如何运行的?
DemoApplication是一个springboot工程的程序入口类,这个类可以用来启动spring boot应用程序

在springboot的启动引导类中有一个注解叫@SpringBootApplication
@SpringBootApplication是Spring Boot的核心注解,并且它是一个复合注解。
符合注解就是一个注解包含多个注解的功能。其中包含了三个最重要的注解@SpringBootConfiguration(它表示标注的类是ioc容器的配置类)、@EnableAutoConfiguration(符合所有自动配置的类bean加载到当前springboot 并创建使用ioc容器) 和@ComponentScan(自动扫描bean,并加载到ioc容器中)
示意图
在这里插入图片描述

Springboot 中的自动配置

bean的配置方式有多种
其一是采用xml文件配置方式(在xml文件中添加bean标签),
其二是采用注解Annotation配置方式(在类上加入@Componect即可)
其三是采用javaconfig配置方式(配置一个javaConfig配置类)
在类上添加@Configuration 表明这是一个配置类
在方法上添加@Bean注释,指明把这个方法的返回对象放入spring容器中,方法名就是在容器中的名字
测试类:
在这里插入图片描述

运行成功截图:
在这里插入图片描述

简单来讲springboot大致的运行过程是这样的,首先启动springboot的测试类,测试类启动spring boot入口类,读取了springboot的javaconfig的配置类,完成框架中的功能配置,实现工程所需。
问题:为什么spring boot可以启动springboot的入口类?
这就是约定大于配置,同包或者子包下面的配置可以直接被入口类自动扫描并且读取。
当我们在springboot项目中引入一个框架的时候,例如SpringMVC框架,我们几乎不需要做任何的配置,就可以使用SpringMVC中的功能并且成功运行,这就是因为引入了SpringMVC框架后,SpringBoot就已经自动帮我们把这个框架的配置默认配置好了。
具体流程如下:
1、 程序入口类上使用@SpringBootApplication注解
2、 @SpringBootApplication注解又包含@EnableAutoConfiguration注解
3、 @EnableAutoConfiguration注解又导入了(@Import)AutoConfigurationImportSelector类
4、 AutoConfigurationImportSelector的类中定义了一个getCandidateConfigurations
5、 getCandidateConfigurations方法可以扫描spring.factories文件中的配置
6、 Spring.factories文件在spring-boot-autoconfigure-2.2.6.RELEASE.jar的META-INF
7. Spring.factories文件中申明了很多java配置类,但是每个配置类都要满足一定的条件才会被执行

下一篇 spring boot 对web的支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值