Spring IO platform:
Spring起初只专注ioc和aop,现在已发展成一个庞大体系。比如security、mvc等。如此一来,不同模块或者与外部进行集成时,依赖处理 就需要各自对应版本号。比如,较新spring与较老的quartz,它们集成就会遇到问题,给搭建和升级带来不便。因此Spring IO Platform应运而生,只要项目中引入了它,外部集成时依赖关系无需版本号。官网的原文如下:“when you do declare a dependency on something that’s part of the Platform, you will now be able to omit the version number.”
Spring IO Platform只是一个pom文件,记录了spring与其他开源项目对应的版本。省去了版本号,也就省去了处理依赖时的问题,因为Spring IO Platform中有最优的版本配置。
当然SpringSource为了解决这些Jar冲突,推出了各种BOM,当然最著名的就是spring platform io bom,其中最核心的三个是:spring-framework-bom、spring-boot-dependencies、platform- bom。
对于Spring工程来说,直接在pom.xml文件中添加如下配置代码,即可免去管理版本冲突的难题
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>4.2.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.3.0.M2</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>1.1.3.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Spring boot:
Spring的4.0版本可以说是一个重大的更新,其全面支持Java8,并且对Groovy语言也有良好的支持。另外引入了非常多的新项目,比如Spring boot,Spring Cloud,Spring WebSocket等。
Spring由于其繁琐的配置,一度被人成为“配置地狱”,各种XML、Annotation配置,让人眼花缭乱,而且如果出错了也很难找出原因。 Spring Boot项目就是为了解决配置繁琐的问题,最大化的实现convention over configuration(约定大于配置)。熟悉Ruby On Rails(ROR框架的程序员都知道,借助于ROR的脚手架工具只需简单的几步即可建立起一个Web应用程序。而Spring Boot就相当于Java平台上的ROR。
Spring Boot的特性有以下几条:
-
创建独立Spring应用程序
-
嵌入式Tomcat,Jetty容器,无需部署WAR包
-
简化Maven及Gradle配置
-
尽可能的自动化配置Spring
-
直接植入产品环境下的实用功能,比如度量指标、健康检查及扩展配置等
-
无需代码生成及XML配置
目前Spring Boot的版本为1.2.3,需要Java7及Spring Framework4.1.5以上的支持。如果想在Java6下使用它,需要一些额外的设置。
如果你想创建一个基于Spring的Web应用,只是简单的在页面中输出一个’Hello World’,按照之前的老方式,你需要创建以下文件:
-
web.xml : 配置使用Spring servlet,以及web其它配置;
-
spring-servlet.xml:配置Spring servlet的配置;
-
HelloController.java: controller。
如果你想运行它的话,需要将生成的WAR包部署到相应的Tomcat或者Jetty容器中才行,这也需要相应的配置。
如果使用Spring Boot的话,我们只需要创建HelloController.java。
import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.stereotype.*; import org.springframework.web.bind.annotation.*; @Controller @EnableAutoConfiguration public class HelloController { @RequestMapping("/") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(HelloController.class, args); } }
然后借助于Spring Boot为Maven和Gradle提供的插件来生成Jar包以后直接运行java -jar即可,简单易用。
上面提过Spring Boot对Maven及Gradle等构建工具支持力度非常大。其内置一个’Starter POM’,对项目构建进行了高度封装,最大化简化项目构建的配置。另外对Maven和Gradle都有相应的插件,打包、运行无需编写额外的脚本。
Spring Boot不止对web应用程序做了简化,还提供一系列的依赖包来把其它一些工作做成开箱即用。下面列出了几个经典的Spring Boot依赖库。
-
spring-boot-starter-web:支持全栈web开发,里面包括了Tomcat和Spring-webmvc。
-
spring-boot-starter-mail:提供对javax.mail的支持.
-
spring-boot-starter-ws: 提供对Spring Web Services的支持
-
spring-boot-starter-test:提供对常用测试框架的支持,包括JUnit,Hamcrest以及Mockito等。
-
spring-boot-starter-actuator:支持产品环境下的一些功能,比如指标度量及监控等。
-
spring-boot-starter-jetty:支持jetty容器。
- spring-boot-starter-log4j:引入默认的log框架(logback)
Spring Boot提供的starter比这个要多,详情请参阅文档:Starter POMs章节。
如果你不喜欢Maven或Gradle,Spring提供了CLI(Command Line Interface)来开发运行Spring应用程序。你可以使用它来运行Groovy脚本,甚至编写自定义命令。安装Spring CLI有多种方法,具体请看:安装Spring Boot Cli章节。
安装完毕以后可以运行 srping version
来查看当前版本。
你可以使用Groovy编写一个Controller。
@RestController class WebApplication { @RequestMapping("/") String home() { "Hello World!" } }
然后使用spring run hello.groovy
来直接运行它。访问localhost:8080即可看到打印的信息。
Spring Boot提供的功能还有很多,比如对MVC的支持、外部Properties的注入,日志框架的支持等。这里就不详述了。感兴趣的可以查看其文档来获取详细的信息。
如果你想在你的项目中使用Spring,那么最好把Spring Boot设为标配,因为它真的很方面开发,不过你也需要仔细阅读它的文档,避免不知不觉掉入坑中。
Spring Framework:Spring的基础产品
Spring XD:(eXtreme Data,极限数据)是Pivotal的大数据产品。
它结合了Spring Boot和Grails, 组成Spring IO平台的执行部分。尽管Spring XD利用了大量现存的Spring项目,但它是一种运行时环境,而不是一个类库或者框架,它包含带有服务器的bin目录,你可以通过命令行启动并与之交 互。运行时可以运行在开发机上、客户端自己的服务器上、AWS EC2上或者Cloud Foundry上。
Spring XD中的关键组件是管理和容器服务器(Admin and Container Servers)。使用一种DSL,你可以把所需处理任务的描述通过HTTP提交给管理服务器。然后管理服务器会把处理的任务映射到处理模块(每个模块都是一个执行单元,作为Spring应用程序上下文实现)中。
进一步了解可点击:http://www.infoq.com/cn/articles/introducing-spring-xd
Spring Data:持久层框架(类Hibernate,ibatis等)
Spring Cloud
Spring Integration:
实例 :http://blog.csdn.net/happyteafriends/article/details/8128290
应用介绍:http://blog.csdn.net/scorpio3k/article/details/6084387
作为Spring编程模型的扩展,Spring Integration提供了各种的配置选项,包括注解,支持命名空间的XML,通用bean元素的XML,当然也包括直接使用底层API。这些API基于定义好的策略接口和非侵略性的代理适配器
Spring Integration主要有如下两个目标:
l 提供一个简单的模型来实现复杂的企业集成解决方案
l 为基于Spring的应用添加异步的、消息驱动的行为
l 让Spring用户可以直观的、增量的采用
Spring Integration基于两个原则:
l 组件应该松耦合,方便模型化和易测试
l 框架应该强制业务逻辑和集成逻辑的关注点分离
l 扩展点本质上应该是抽象的,而且限定在一个清晰的边界内,来促进可重用性和可移植性。
Spring Batch:
Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使的已经使用 Spring 框架的开发者或者企业更容易访问和利用企业服务
SpringSocial的目标是为那些面向社交的网站(那些与“状态”打交道,或者通过其他方式交换消息的社交服务)提供编程式的访问。它也可以被用来提供登录控制,从而允许用户通过他们的Facebook/Twitter帐号登录,而无需使用专门的身份验证方式。
由于大部分这些网站都支持OAuth认证方式,SpringSocial主要的应用场景是基于Web的应用程序,它可以执行必要的Web重定向,对网站用户 进行认证。例如,网上购物的应用程序可能允许用户使用他们的Facebook凭证进行登录,并允许他们向Facebook发布销售信息。
然而,并非所有的服务商都使用相同的OAuth机制。总共有三个版本的OAuth在被使用:1.0、1.0a以及2.0——而且,不同的服务商使用了不同的 风格。SpringSocial Core定义了一组SPI使得这些“方言”之间可以互相交流,而且对服务商Twitter、Facebook提供了内置支持,可以连接这些特定的服务。(OAuth 1.0和1.0a几乎完全相同,但后者修复了一个安全漏洞——除了网址,OAuth密钥还被用来签署原始域以及请求。)
SpringSocial 1.0提供了大量的快速启动文档与示例。SpringSocial 1.0要求Spring Core 3.0.5或者更高的版本,但建议是Spring Core 3.1。你可以直接下载,或者增加Maven的依赖,把它添加到项目里面。
相关推荐
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用...
Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。 Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只...
VMware Tanzu发布安全公告,公布了一个存在于Spring Framework中的反射型文件下载(Reflected File Download,RFD)漏洞CVE-2020-5421。CVE-2020-5421 可通过jsessionid路径参数,绕过防御RFD攻击的保护。先前针对RFD...
产品特点自动检测您的配置文件并配置Logback访问。 支持类路径上的配置文件。 支持X-Forwarded-* HTTP标头。 支持Spring Security提供的HttpServletRequest#getRemoteUser() 。 提供配置文件的扩展名。 <spring...
产品特点 透明地集成到spring-data-mongodb 支持嵌套的集合,地图和bean 高性能(无反射,优化了加密) 密钥版本控制(以帮助迁移到新密钥而无需转换数据) 开箱即用支持256位AES 支持Java中可用的任何加密...
Spring-Boot集成Neo4j并利用Spark的朴素贝叶斯分类器实现基于电影知识图谱的智能问答系统
产品特点 在应用程序上下文中管理MapperFacade (Orika的mapper界面),并将其注入代码中。 提供用于自定义MapperFactory接口。 提供用于自定义MapperFactoryBuilder界面。 支持的版本 “ orika-spring-boot-...
gRPC Spring Boot Starter 自述:|文档:|产品特点使用@GrpcService实现自动配置并运行gRPC服务器使用@GrpcClient自动创建和管理您的grpc频道和存根支持其他grpc-java风格(例如 , ,...) 服务器端:应该适用于...
很不错的学习笔记,个人备用。Spring Boot:旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能,可以和spring cloud联合部署。
Spring Boot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。 我们为Spring平台及第三方库提 供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用需要很少的Spring配置。...
Spring MVC和Spring WebFlux的问题 问题Spring Web是一组库,可轻松从Spring应用程序生成响应。 它填补了一个小众市场...产品特点 让您选择点菜特色 偏重于继承而不是继承 内置约20个有用的建议特征 Spring MVC和Spri
Charon Spring启动启动器 Charon是反向代理实现。...产品特点高度可配置和可扩展Spring 和支持多请求转发映射负载均衡灵活的路径重写支持基于指标异步请求转发认证方式Cookies改写“ X转发” HTTP标头支持转发过
可以使用在身份提供者模式下支持SAML 2.0的所有产品(例如ADFS 2.0,Shibboleth,OpenAM / OpenSSO,Ping Federate,Okta)来连接Spring SAML Extension。 有关功能的详细列表以及对最新版本的访问,请访问。行为...
spring-cloud-alibaba 概述 The Spring Cloud Alibaba project, consisting of Alibaba’s open-source components and several Alibaba Cloud products, aims to implement and expose well known Spring Framework...
基于ssm的产品管理系统代码 | 产品管理系统 | bs | java | ssm | spring | springmvc | mybatis | 代码 | 系统 | 网站 | 毕设 | 项目 1、技术栈:微信小程序,springboot,uniapp,vue,ajax,maven,mysql,...
产品特点支持Spring和Spring Boot框架支持的版本是Spring 4.3.0+和Spring Boot 1.4.0+ 与Spring TestContext框架自动集成完全支持上下文缓存与Flyway数据库迁移工具无缝集成只需将@FlywayTest批注放置在测试类或方法...
基于springboot的农产品预售平台代码 | java | springboot | spring | 代码 | 网站 | 毕设 1、技术栈:微信小程序,springboot,uniapp,vue,ajax,maven,mysql,MyBatisPlus 2、系统的实现 用户信息 图片素材 ...
基于springboot的产品售后管理系统代码 | java | springboot | spring | 代码 | 网站 1、技术栈:微信小程序,springboot,uniapp,vue,ajax,maven,mysql,MyBatisPlus 2、系统的实现 用户信息 图片素材 视频...
基于springboot的电子产品销售系统代码 | java | springboot | spring | 代码 | 网站 | 毕设 1、技术栈:微信小程序,springboot,uniapp,vue,ajax,maven,mysql,MyBatisPlus 2、系统的实现 用户信息 图片素材 ...
产品展示 描述 urlFragment 样品 Java 天蓝色 这是一个示例应用程序,用于在Azure Functions之上展示Spring Cloud Function的用法。 你好春天功能天蓝色 在Azure Functions上运行的示例“ Hello,world” Spring ...