Spring初识
Spring官方地址:https://spring.io/
Spring 框架最开始的部分是由Rod Johnson于2000年为伦敦金融界提供独立咨询业务时写出来的。在《Expert One-On-One J2EE Development Without EJB》一书中,他进一步拓展了他的代码,以阐述“如何让应用程序能以超出当时大众所惯于接受的易用性和稳定性与J2EE平台上的不同组件合作”的观点。
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.0版本 Spring 2.x增加对注解的支持,支持了基于注解的配置。
1.引入提供对OpenJPA(EJB3.0的JPA标准)的支持 2.重新发布了对AspectJ的内部支持,允许用户自定义切面,提供声明式企业服务(最重要的是声明式事务管理) 3.对glassfish的织入支持 4.改善了bean定义工具spi
-
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的消息监听
-
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.新版本的任务管理器,触发器发布。
-
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 作为测试框架
-
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首页现在主推三个,分别是
- Spring Boot
- Spring Cloud
- Sping Cloud Data flow
从开始学习spring,首选Spring framework,现在更新到了5.x版本,源码地址在https://github.com/spring-projects/spring-framework
2.1、Spring Boot
特性
- 非常快,开箱即用
- 提供各种非功能的特性
- 按需使用
- 不用生成代码,不用编写XML文件
2.2、Spring Cloud
提供了分布式系统的很多特性
- 配置管理
- 服务注册和发现
- 熔断,限流
- 服务追踪
- …
3、新建一个基本的springboot程序
创建一个springBoot程序有多简单
-
访问Springboot初始化站点:https://start.spring.io/
-
填写必要信息 如下图
选择构建工具,选择程序语言,选择版本,填写项目的元数据信息,需要使用那些依赖,这边我随便选了两个,比如内存是数据库H2,监控指标jar Actuator,接着点击下面的生成项目就会下载一个zip,里面就是一个基本的项目结构,并且这个项目是可以运行的,虽然没有任何的业务逻辑。