Spring初识

2018/09/21 框架

Spring初识

​ Spring官方地址:https://spring.io/

​ Spring 框架最开始的部分是由Rod Johnson于2000年为伦敦金融界提供独立咨询业务时写出来的。在《Expert One-On-One J2EE Development Without EJB》一书中,他进一步拓展了他的代码,以阐述“如何让应用程序能以超出当时大众所惯于接受的易用性和稳定性与J2EE平台上的不同组件合作”的观点。

1、版本时间

  1. 1.x版本一批自愿拓展Spring框架的程序开发人员组成了团队,2003年2月在Sourceforge上构建了一个项目。在Spring框架上工作了一年之后,这个团队在2004年3月发布了第一个版本(1.0)。

        Spring 1.0当时只包含一个完整的项目,他把所有的功能都集中在一个项目中,其中包含了核心的Ioc、AOP,同时也包含了其他的诸多功能,例如:JDBC、Mail、ORM、事务、定时任务、Spring MVC等。
       由于Spring超前的眼光和博大的精神,在第一个版本的时候已经支持了很多第三方的框架,例如:Hibernate、ibatis、模板引擎等。
    
  2. 2.0版本 Spring 2.x增加对注解的支持,支持了基于注解的配置。

    1.引入提供对OpenJPA(EJB3.0的JPA标准)的支持
    2.重新发布了对AspectJ的内部支持,允许用户自定义切面,提供声明式企业服务(最重要的是声明式事务管理)
    3.对glassfish的织入支持
    4.改善了bean定义工具spi
    
  3. 2.5版本

    1.对Java 6,Java EE 5(JDBC 4.0, JTA 1.1, JavaMail 1.4, JAX-WS 2.0)的支持
    2.支持注解驱动依赖注入,包括对"qualifiers"的支持
    3.支持通过配置进行组件的包扫描。
    4.加入了对bean(...)pointcut 元素的支持,在 spring定义的bean命名中对指定的命名进行匹配
    5.对AspectJ load-time weaving的支持
    6.加入新的xml命名空间,"context"和"jms"
    7.修改整合了测试框架,发布第一个支持JUnit4和TestNG的版本。
    8.新的基于注解的控制器模型支持servlet和portlet环境
    9.扩展了SimpleJdbcTemplate的功能,包括对声明式sql参数的支持。
    10.官方证实对websphere的支持
    11.打包提取osgi的兼容jar包
    12.提供部署spring应用上下文作为JCA,RAR文件的支持
    13.支持JCA1.5消息连接点管理,通过基于spring的JMS和CCI的消息监听 	
    
  4. 3.x

    1.Spring expression language (SpEL),用于bean配置的核心表达式解析器发布,通过类似#{...}等形式进行配置。
    2.增强的IOC,基于java的Bean元数据(@Value)
    3.通用类型转换系统和字段格式化系统
    4.对象和XML之间的映射,来自于Srping Web Services项目
    5.广泛的REST支持
    6.Spring的MVC注解增强
    7.声明试模型验证
    8.提前对JAVA EE6的支持
    9.嵌入式数据库的支持
    10.新版本的任务管理器,触发器发布。
    
  5. 4.x

    1.支持Java8,而且向下兼容到JavaSE6/JavaEE6,并移出了相关废弃类,新添加如Java8的支持、Groovy式Bean定义DSL
    2.支持泛型式的依赖注入
    2.对核心容器进行增强(@Order@Conditional等)
    3.对Web框架的增强(以sevlet3进行开发)
    4.集成Bean Validation 1.1到SpringMVC
    5.JSR310日期时间API的支持(制定规范的就是jodatime的作者)
    5.Websocket模块的实现
    6.注解、脚本、任务、MVC等其他特性改进
    7.移除了废弃的包和方法
    8.测试的增强等 使用junit4.x 作为测试框架
    
  6. 5.x

    1. JDK版本升级 全面支持jdk1.8 部分组件支持1.9
    2. Core框架修订,核心容器更新
    3. Kotlin函数式编程
    4. 响应式编程模型
    5. 测试改进 默认测试框架使用junit5 
    6. 额外库支持
    7. 停止维护一些特性
    

2、spring家族

spring的项目很多,大概有几十个,具体的可以看https://spring.io/projects

spring首页现在主推三个,分别是

  1. Spring Boot
  2. Spring Cloud
  3. Sping Cloud Data flow

从开始学习spring,首选Spring framework,现在更新到了5.x版本,源码地址在https://github.com/spring-projects/spring-framework

2.1、Spring Boot

特性

  1. 非常快,开箱即用
  2. 提供各种非功能的特性
  3. 按需使用
  4. 不用生成代码,不用编写XML文件

2.2、Spring Cloud

提供了分布式系统的很多特性

  1. 配置管理
  2. 服务注册和发现
  3. 熔断,限流
  4. 服务追踪

3、新建一个基本的springboot程序

创建一个springBoot程序有多简单

  1. 访问Springboot初始化站点:https://start.spring.io/

  2. 填写必要信息 如下图

选择构建工具,选择程序语言,选择版本,填写项目的元数据信息,需要使用那些依赖,这边我随便选了两个,比如内存是数据库H2,监控指标jar Actuator,接着点击下面的生成项目就会下载一个zip,里面就是一个基本的项目结构,并且这个项目是可以运行的,虽然没有任何的业务逻辑。

Search

    欢迎添加我的个人微信号

    个人微信哦

    Table of Contents