`
2277259257
  • 浏览: 515084 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring----各产品

 
阅读更多

 

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 BootGrails, 组成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 框架的开发者或者企业更容易访问和利用企业服务

Spring Batch 供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。对于大数据量和高性能的批处理任务,Spring Batch 同样ﰁ供了高级功能和特性来支持,比如分区功能、远程功能。总之,通过 Spring Batch 能够支持简单的、复杂的和大数据量的批处理作业。Spring Batch 是一个批处理应用框架,不是调度框架,但需要和调度框架合作来构建完成的批处理任务。它只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不ﰁ 供相应的调度功能。如果需要使用调用框架,在商业软件和开源软件中已经有很多优秀的企业级调度框架(如 Quartz、Tivoli、Control-M、Cron 等)可以使用。
 
Spring Security:
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
 
Spring hateoas:
SpringSocial 1.0给人们带来了一个通过一致的API连接社交服务的标准方法。该初始版本支持对Twitter、Facebook、GitHub与Trippit等社交服务的连接,并针对添加其他服务提供了SPI。
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 AMQP:
Spring AMQP项目将Spring核心概念应用到了基于AMQP的消息解决方案的开发上,并且提供了Java与.NET两个版本。要想了解Spring AMQP与AMQP,请阅读文章“Introduction to SpringSource's Advanced Message Queuing Protocol Support”。
Spring AMQP提供了org.springframework.amqp.core.AmqpTemplate来发送与接收消息。AMQP模板实现支持发送与接收POJOs而非javax.jms.Message实例。他们还提供了一种方式来自定义用于编排对象的MessageConverter。Spring与JMS用户会发现JmsTemplate与新的AmqpTemplate之间的相似性。
下面的代码片段介绍了如何联合使用Spring AMQP与RabbitMQ处理同步消息。
http://blog.csdn.net/ricohzhanglong/article/details/7236641
 
Spring Mobile:
Spring Mobile 是 Spring MVC 的扩展,用来简化手机上的Web应用开发,用于支持移动浏览的小框架,用起来很简单,和spring mvc结合也很方便
 
Spring for Android:
Spring Android 是 Spring 框架的扩展,用于简化 Android 本地应用程序的开发
 
Spring Web Flow:
Spring Web Flow (SWF) 是Spring Framework的一个脱离模块。这个模块是Spring Web应用开发模块栈的一部分,Spring Web包含Spring MVC。Spring Web Flow 的目标是成为管理Web应用页面流程的最佳方案。当你的应用需要复杂的导航控制,例如向导,在一个比较大的事务过程中去指导用户经过一连串的步骤的时候,SWF将会是一个功能强大的控制器
 
Spring Web Services:
 

Spring LDAP:
一般来说LDAP可以用来作为一个用户中心,围绕LDAP可以部署一些应用来共享相同的账号,这个在企业管理中是非常有帮助的,因为企业的内部应用可能是几个到几十个,员工如果有统一的账号密码,那将非常方便。
详细 :http://www.mzone.cc/article/621.html
 
Spring Session:
 
 
Spring Roo:
Spring Roo是针对 Java 技术的一个可扩展的、基于文本的开源 RAD 工具。它是用于创建和管理基于 Spring 的应用程序的一个强大资源
使用 Spring Roo,您可以添加和配置 JPA、Spring MVC、Spring Security 等功能,使用 Log4j 进行日志记录,测试 JUnit 和 Selenium、Solr、JMS、电子邮件等框架,仅需在 Roo shell 上输入命令即可。使用 Roo 添加这些功能节省的时间提高了开发人员的生产效率。Roo 不能编写业务逻辑,但可以管理应用程序的基础结构或配置。
Roo 是一个开发时间工具,这意味着应用程序在运行时独立于 Roo。由于 Roo 在运行时不存在,它没有任何性能或内存开销。这确保您不依赖于 Spring Roo,您只需几个按键即可随时从您的项目中删除 Roo
 
 
 
 

 
 
 
 
 
 
 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    spring-web-4.3.29.RELEASE.jar

    VMware Tanzu发布安全公告,公布了一个存在于Spring Framework中的反射型文件下载(Reflected File Download,RFD)漏洞CVE-2020-5421。CVE-2020-5421 可通过jsessionid路径参数,绕过防御RFD攻击的保护。先前针对RFD...

    spring-5.2.6.RELEASE-dist.zip

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用...

    spring-framework-4.1.6.RELEASE-dist.zip

    《Spring框架4.1.6.RELEASE:深度解析与应用》 Spring框架是Java开发中的一个核心组件,尤其在企业级应用开发中占据着举足轻重的...通过深入理解和熟练运用,开发者可以极大地提升工作效率,打造出高质量的软件产品。

    spring-boot-cli-2.0.0.M5-bin.zip

    正式版发布前,建议关注后续的M6、RC1、RC2等版本,直至GA(General Availability)版本,以获取更稳定的产品。 总结,Spring Boot CLI是Spring Boot生态系统中的一个重要组件,它简化了Spring应用的创建和开发流程...

    spring-boot示例项目

    Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。 Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只...

    rocketmq-spring-rocketmq-spring-all-2.0.3_rocketmq_

    RocketMQ Spring是阿里巴巴开源的一款基于Apache RocketMQ的消息中间件与Spring框架深度整合的产品,它使得在Spring Boot项目中集成RocketMQ变得极其简便。RocketMQ是一款高性能、高可用、分布式的消息队列服务,常...

    Spring-Boot集成Neo4j并利用Spark的朴素贝叶斯分类器实现基于电影知识图谱的智能问答系统

    在构建智能问答系统时,将Spring-Boot与Neo4j数据库和Spark的朴素贝叶斯分类器相结合是一种高效的方法,特别是在处理与电影相关的知识图谱数据时。以下将详细阐述这个系统的组成部分及其工作原理。 首先,Spring-...

    logback-access-spring-boot-starter:用于Logback访问的Spring Boot Starter

    产品特点自动检测您的配置文件并配置Logback访问。 支持类路径上的配置文件。 支持X-Forwarded-* HTTP标头。 支持Spring Security提供的HttpServletRequest#getRemoteUser() 。 提供配置文件的扩展名。 &lt;spring...

    orika-spring-boot-starter:适用于Orika的Spring Boot Starter

    产品特点 在应用程序上下文中管理MapperFacade (Orika的mapper界面),并将其注入代码中。 提供用于自定义MapperFactory接口。 提供用于自定义MapperFactoryBuilder界面。 支持的版本 “ orika-spring-boot-...

    spring-cloud-alibaba,spring cloud alibaba为阿里中间件的分布式解决方案提供了一站式的应用开发解决方案。.zip

    Spring Cloud Alibaba 是一个由阿里巴巴维护的开源项目,它为开发者提供了在分布式系统(如微服务、云应用)中...通过深入理解和熟练运用这些组件,开发者可以更好地驾驭微服务架构,提升软件产品的质量和用户体验。

    基于spring-boot实现自动化配置的支付对接.zip

    让你真正做到一行代码实现支付聚合,让你可以不用理解支付怎么对接,只需要专注你的业务 全能第三方支付对接pay-spring-boot-starter开发工具包 开发工具在软件开发生命周期中扮演着至关重要的角色,它们旨在简化...

    spring-session-1.3.1.RELEASE.zip

    7. **社区反馈与修复**:基于社区的反馈,Spring Session 团队可能会在新版本中修复一些已知问题,提高兼容性,解决与其他 Spring 组件的冲突,以提供更加稳定的产品。 总之,Spring Session 1.3.1.RELEASE 是一个...

    spring-data-mongodb-encrypt:轻量级的库,用于在mongodb + spring中进行简单轻松的按字段加密

    产品特点 透明地集成到spring-data-mongodb 支持嵌套的集合,地图和bean 高性能(无反射,优化了加密) 密钥版本控制(以帮助迁移到新密钥而无需转换数据) 开箱即用支持256位AES 支持Java中可用的任何加密...

    Android-阿里云短信集成aliyun-sms-spring-boot-starter

    阿里云短信服务是一款高效、稳定、安全的云通信产品,主要为移动应用、网站、企业内部系统等提供验证码、通知类短信以及营销短信的发送能力。`aliyun-sms-spring-boot-starter`是阿里云专门为Spring Boot应用程序...

    Spring-cloud-alibaba Demo

    6. **Hystrix**:虽然不是阿里巴巴的产品,但 Spring Cloud Alibaba 也对其进行了集成,提供了服务降级、熔断和隔离功能,以防止服务雪崩效应。 在 "Spring-cloud-alibaba Demo" 中,开发者通常会创建一个或多个...

    resteasy-spring-boot:RESTEasy Spring Boot Starter

    产品特点 为Spring Boot应用程序启用RESTEasy 作为Spring bean支持JAX-RS提供程序,资源和子资源 支持自动发现和注册多个类作为Spring Bean 支持通过类路径扫描或通过配置属性(或YAML)文件手动注册类的可选注册 ...

    grpc-spring-boot-starter:用于gRPC框架的Spring Boot启动器模块

    gRPC Spring Boot Starter 自述:|文档:|产品特点使用@GrpcService实现自动配置并运行gRPC服务器使用@GrpcClient自动创建和管理您的grpc频道和存根支持其他grpc-java风格(例如 , ,...) 服务器端:应该适用于...

    atlassian-plugins-spring-2.6.0.jar.zip

    总的来说,Atlassian-plugins-spring-2.6.0.jar.zip是一个关键的开发资源,它使Atlassian产品的开发者能够利用Spring的强大功能来构建和管理插件。理解如何有效地利用Spring框架,结合Atlassian提供的插件系统,是...

    spring-cloud-gateway-oauth2

    Nacos是阿里巴巴开源的一款云原生应用配置管理和服务发现产品,它提供了一站式的配置管理和服务发现解决方案。 1. 配置Nacos:在项目中引入Nacos客户端依赖,配置Nacos服务器地址、命名空间等信息。 2. 配置管理:...

    spring-reference

    Spring框架允许开发者通过`&`符号来获取FactoryBean本身,而不是其产生的产品Bean。 #### 3.7 通过 BeanPostprocessors 自定义 Beans BeanPostprocessors是在Bean实例化后进行操作的组件,可以在Bean初始化前后执行...

Global site tag (gtag.js) - Google Analytics