springboot是怎样简化开发的,原理是什么?

我们习惯上使用springboot框架来做web项目,即便一个不理解spring的同学也可以把springboot用的很好。但是如果面试官问你为什么要用springboot,该怎么回答呢。
看了一本和springboot底层有关的书,稍微整理一下:

1.首先介绍springboot是什么

springboot提供了快速创建spring项目的方式,依托的是java技术和spring框架。spring的IoC帮助我们管理Bean,而AoP可以将很多辅助工程设计成切面,在方法执行的前后进行切面插入,实现方法的增强。而springboot并没有改变spring而是提供了快速入手spring的一种方式。

我们通常用spring Initializer快速的创建一个新的spring项目,只要在Initializer界面选选选就可以了。

2.然后基于springboot约定大于配置的思想,详细展开
springboot是一种约定大于配置的思想,提供了很多约定,用来简化编程:

约定resources目录存放配置文件
约定springboot的配置文件是application.yml或者是application.properties文件
约定配置文件中,数据库的配置信息必须是spring:dtatasource为前缀。
约定以starter的形式减少依赖: 比如spring-boot-starter-web约定一个web开发环境,包括tomcat服务器,spring-web、spring-webmvc等相关依赖。

3.再结合springboot的注解之类的,详细说明是怎样简化的
比如@SpringbootApplication

  • 本来我们在spring项目中,需要用@Configuration标注某个类是JavaConfig类,用@Bean注解标注需要注入的Bean,然后用@ComponentScan在classPath下批量的采集@Component@Repository注解的定义类,到IoC当中。
  • 但是在springboot项目中,直接用@springbootApplication就可以实现,这是springboot项目的启动类,实际上是多个注解的组合,组合中最关键的是@configuration、@EnableAutoConfiguration、@ComponentScan。
  • 其中,@EnableAutoConfiguration也是一个组合注解,其中最重要的一个是@Import注解,通过一个SpringFactoriesLoader,把结尾是XXconfiguration的配置类自动装配到BeanFactory里面。并且springboot提供了基于条件的自动配置,并且可以调整配置的顺序。

4.结合springboot的run方法继续展开
SpringApplication的run方法将启动一个spring项目的流程进行了模板化。
run方法是如何启动一个springboot项目的

首先是让所有的ApplicationListener开始监听,并准备springboot的运行环境。
然后开始创建IoC容器,并且把之前找到的Configuration配置类和其他的bean注册到容器
调用refresh方法实现Bean的属性注入。
至此,springIoc准备就绪,但在启动完毕之前,会查找是否有CommandLineRunner类,如果有的话,就先执行这些类,如果没有就调用finish,认为启动完毕。
所以,有一些服务器启动前一些定制的初始化任务可以放在CommandLineRunner里面。 

5.CommandLineRunner是springboot独有的,就是用于在项目启动结束之前,加一些为项目提供的初始化方法,只要实现CommandLineRunner的run方法就可以。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值