SpringBoot的前世今生

1. Spring

Spring 特性:IOC、AOP、DI,

Spring:解决对象耦合的问题,在 applicationContext.xml 中申明 bean,Spring在启动时会解析xml文件进行装载,当需要用对象时直接从容器中拿取bean。

Spring万能胶:方便集成各种插件中间件。

Spring本身的这个组件是轻量级,但是配置是重量级。因为所有组件的描述、依赖都需要添加对应的xml配置。

用SpringMVC去构建一个web项目的流程:

→ 创建一个项目结构(maven/ gradle)

→ pom.xml中 添加 spring依赖,spring mvc、servlet api 等等的依赖 

→ 配置WEB-INF/web.xml, 配置 DispatcherServlet (spring mvc是在 jsp servlet 之上做的封装,所以需要配置dispatcherservlet 去拦截spring的请求) 

→ 启动一个spring mvc的配置,Dispatcher-serclet.xml 

 创建一个Controller 发布一个 http 请求 

→发布到 jsp/servelt 容器

可以看出,除了 创建一个Controller 发布一个 http 请求,其它步骤都是通用模板

2. SpringBoot

SpringBoot 产生的原因:

① Spring配置的重量级。

② 对于项目构建过程中spring需要添加太多通用性模板性的配置。

③ 微服务萌芽阶段,正好也需要这样一个轻量级的服务化架构。

到底什么是 SpringBoot?——Applications that you can just run

(可以认为 SpringBoot 是 SpringFramework 的一个脚手架,可以使用SpringBoot 快速构建一个基于 SpringFramework 的应用 )

约定大于配置,使用 SpringBoot 只需关注 → 创建一个Controller 发布一个 http 请求 步骤,其它步骤 SpringBoot 已按照默认约定自动完成。

  • 只要依赖 Spring-boot-starter-web 的 jar 包,就会自动内置一个 tomcat容器;(默认支持四种web容器:tomcat、jetty、undertow、reactor)
  • 项目结构
  • 默认提供了配置文件 application.properties. (项目中 ${key} 的引用会默认从application.properties中找key对应的value)
  • starter启动依赖-如果是一个webstarter,默认认为你是去构建一个spring mvc的应用。

SpringBoot的特性

  • EnableAutoConfiguration 自动装配
  • Starter 启动依赖 依赖于自动装配的技术
  • Actuator 监控 提供了一些endpoint,可以基于http、jmx形式去访问health、mrtrics信息...
  • SpringBoot CLI (命令行操作的功能,可以在客户端基于groovy脚本快速构建springboot应用)

(这些特性并非springboot创造的,spring也支持特性,不过SpringBoot在Spring基础上进一步做了封装)

3. Spring 注解驱动的发展过程

SpringBoot的快速发展某种程度上依赖于Spring的注解驱动。

  • spring 1.x :IOC的功能
  • spring 2.x: 引入了一些注解@Required/ @Repository/ @Aspect

                spring 2.5:@Controller、@Seivice、@Component、@RequestMapping

  • spring 3.x:里程碑版本,
    •  @Configuration 取代 xml 文件,去 xml 化。核心目的:把bean对象更加便地加载到springIOC容器中
    • @ComponentScan:扫描@Service、@Repository、@Controller
    • @Import
    • @Enable模块驱动:自动把模块相关组件的bean自动装配到IOC容器中。(如果没有这种方式,需要用@bean去装配,很难装配完全)(Enable可以自定义)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值