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的依赖,把它添加到项目里面。
相关推荐
VMware Tanzu发布安全公告,公布了一个存在于Spring Framework中的反射型文件下载(Reflected File Download,RFD)漏洞CVE-2020-5421。CVE-2020-5421 可通过jsessionid路径参数,绕过防御RFD攻击的保护。先前针对RFD...
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用...
《Spring框架4.1.6.RELEASE:深度解析与应用》 Spring框架是Java开发中的一个核心组件,尤其在企业级应用开发中占据着举足轻重的...通过深入理解和熟练运用,开发者可以极大地提升工作效率,打造出高质量的软件产品。
正式版发布前,建议关注后续的M6、RC1、RC2等版本,直至GA(General Availability)版本,以获取更稳定的产品。 总结,Spring Boot CLI是Spring Boot生态系统中的一个重要组件,它简化了Spring应用的创建和开发流程...
Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。 Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只...
RocketMQ Spring是阿里巴巴开源的一款基于Apache RocketMQ的消息中间件与Spring框架深度整合的产品,它使得在Spring Boot项目中集成RocketMQ变得极其简便。RocketMQ是一款高性能、高可用、分布式的消息队列服务,常...
在构建智能问答系统时,将Spring-Boot与Neo4j数据库和Spark的朴素贝叶斯分类器相结合是一种高效的方法,特别是在处理与电影相关的知识图谱数据时。以下将详细阐述这个系统的组成部分及其工作原理。 首先,Spring-...
产品特点自动检测您的配置文件并配置Logback访问。 支持类路径上的配置文件。 支持X-Forwarded-* HTTP标头。 支持Spring Security提供的HttpServletRequest#getRemoteUser() 。 提供配置文件的扩展名。 <spring...
产品特点 在应用程序上下文中管理MapperFacade (Orika的mapper界面),并将其注入代码中。 提供用于自定义MapperFactory接口。 提供用于自定义MapperFactoryBuilder界面。 支持的版本 “ orika-spring-boot-...
Spring Cloud Alibaba 是一个由阿里巴巴维护的开源项目,它为开发者提供了在分布式系统(如微服务、云应用)中...通过深入理解和熟练运用这些组件,开发者可以更好地驾驭微服务架构,提升软件产品的质量和用户体验。
让你真正做到一行代码实现支付聚合,让你可以不用理解支付怎么对接,只需要专注你的业务 全能第三方支付对接pay-spring-boot-starter开发工具包 开发工具在软件开发生命周期中扮演着至关重要的角色,它们旨在简化...
7. **社区反馈与修复**:基于社区的反馈,Spring Session 团队可能会在新版本中修复一些已知问题,提高兼容性,解决与其他 Spring 组件的冲突,以提供更加稳定的产品。 总之,Spring Session 1.3.1.RELEASE 是一个...
产品特点 透明地集成到spring-data-mongodb 支持嵌套的集合,地图和bean 高性能(无反射,优化了加密) 密钥版本控制(以帮助迁移到新密钥而无需转换数据) 开箱即用支持256位AES 支持Java中可用的任何加密...
阿里云短信服务是一款高效、稳定、安全的云通信产品,主要为移动应用、网站、企业内部系统等提供验证码、通知类短信以及营销短信的发送能力。`aliyun-sms-spring-boot-starter`是阿里云专门为Spring Boot应用程序...
6. **Hystrix**:虽然不是阿里巴巴的产品,但 Spring Cloud Alibaba 也对其进行了集成,提供了服务降级、熔断和隔离功能,以防止服务雪崩效应。 在 "Spring-cloud-alibaba Demo" 中,开发者通常会创建一个或多个...
产品特点 为Spring Boot应用程序启用RESTEasy 作为Spring bean支持JAX-RS提供程序,资源和子资源 支持自动发现和注册多个类作为Spring Bean 支持通过类路径扫描或通过配置属性(或YAML)文件手动注册类的可选注册 ...
gRPC Spring Boot Starter 自述:|文档:|产品特点使用@GrpcService实现自动配置并运行gRPC服务器使用@GrpcClient自动创建和管理您的grpc频道和存根支持其他grpc-java风格(例如 , ,...) 服务器端:应该适用于...
总的来说,Atlassian-plugins-spring-2.6.0.jar.zip是一个关键的开发资源,它使Atlassian产品的开发者能够利用Spring的强大功能来构建和管理插件。理解如何有效地利用Spring框架,结合Atlassian提供的插件系统,是...
Nacos是阿里巴巴开源的一款云原生应用配置管理和服务发现产品,它提供了一站式的配置管理和服务发现解决方案。 1. 配置Nacos:在项目中引入Nacos客户端依赖,配置Nacos服务器地址、命名空间等信息。 2. 配置管理:...
Spring框架允许开发者通过`&`符号来获取FactoryBean本身,而不是其产生的产品Bean。 #### 3.7 通过 BeanPostprocessors 自定义 Beans BeanPostprocessors是在Bean实例化后进行操作的组件,可以在Bean初始化前后执行...