SpingBoot之前世今生

Spring Boot之前世今生

Spring Framework AOP、IOC/DI

Spring万能胶

  • 如何对配置进行轻量化

思考:用springmvc去创建一个web项目发布一个helloworld的http端口

  • 创建一个项目结构(maven/gradle)
  • spring的依赖,springmvc、servlet api的依赖
  • web.xml, DispatcherServlet
  • 启动一个springmvc的配置,Dispatcher-servlet.xml
  • 创建一个Controller发布一个请求
  • 发布到jsp/servlet容器

什么是SpringBoot

约定优于配置理念下的一个产物

  • 只要依赖的spring-boot-starter-web的jar,就会自动内置一个tomcat容器(替换)
  • 项目结构
  • 默认提供了配置文件application.properties
  • starter启动依赖如果是一个webstarter,默认认为你是去创建一个spring mvc的应用

Spring Boot和微服务

为什么SpringCloud会采用SpringBoot来作为基础框架呢?原因很简单

  1. SpringCloud它是关注服务治理领域的解决方案,而服务治理是依托于服务架构之上,所以它仍然需要一个承载框架
  2. SpringBoot可以简单认为它是一套快速配置Spring应用的脚手架,它可以快速开发一个单个微服务,所以SpringCloud的版本和Springboot的版本的兼容性有很大的关联

Spring Boot的特性

  • EnableAutoConfiguration自动装配
  • Starter启动依赖,依赖于自动装配的技术
  • Actuator监控,提供了一些endpoint、http、jmx形式去进行访问health信息、metrics信息等
  • SpringBootCLI客户端

Spring注解驱动的发展过程

Spring Framework的注解驱动的发展历史

Spring 1.x

在SpringFramework1.x的时代,其中1.2.0是这个时代的分水岭,当时java5刚刚发布,业界正兴起了使用Annotation的技术风,Spring Framework自然也提供了支持,比如当时已经支持了@Transcational等注解,但是这个时候,xml配置方式还是唯一选择

 	<bean name="" class=""/>
Spring 2.x阶段

Spring Framework2.x时代,2.0版本在Annotation中添加了@Required、@Repository以及AOP相关的@Aspect等注解,同时也提升了XML配置能力,也就是可扩展的XML,比如Dubbo这样的开源框架就是基于Spring XML的扩展来完美的继承Spring,从而降低了Dubbo使用门槛。

在2.x的时代,2.5版本也是这个时代的分水岭,它引入了 一些很核心的Annotaion

  • @Autowired依赖注入
  • @Qualifer依赖查找
  • @Compoent、@Service组件声明
  • @Controller、@RequestMappring等SpringMvc的注解

尽管Spring2.x时代提供了不少的注解,但是仍然没有脱离xml配置驱动,比如context:annotation-config context:compoent-scan,前者的责任是注册Annotation处理器,后者是负责扫描classpath下指定包路径下被Spring模式注解标注的类,将他们注册成为Spring Bean

@Requied/ @Repository @Aspect

Spring 3.x阶段

Spring Framework3.0是一个里程碑式的时代,他的功能特性开始出现了非常大的扩展,比如全面拥抱
Java5、以及Spring Annotation。更重要的是,它提供了配置类注解@Configuration, 他出现的首要
任务就是取代XML配置方式

  • @Configuration去xml化

核心目的是:把bean对象如何更加快捷的方式去加载到Spring IOC容器中

  • Component-Scan - @Service @Repository@Controller
  • Import
Enable模块驱动

自动完成相关相关组件的bean的装配
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8FDamqFk-1595741955712)(/Users/zhaojing/Book/mine/md/image/enable驱动.png)]

Spring3.x版本中,继承Redis或者mybatis
  • 创建一个配置类

  • @bean注解来声明一个bean

    @Bean
    DefaultKaptcha defaultKaptcaha(){}
    
  • @Bean启动一个模块,把相关组件的bean自动装配到IOC容器中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值