Spring-boot提供了一种创建基于Spring的应用程序的快速方法。 对于下一个项目,有一些非常令人信服的理由考虑使用Spring-boot:

原因1:使用spring-boot启动程序项目进行更简单的依赖性管理。

考虑使用Spring引导提供数据访问抽象的h2数据库实现CRUD,考虑使用Spring-boot启动CRUD Web应用程序所需的工作量。 该项目所需的Maven Pom如下:

<?xml version="1.0" encoding="UTF-8"?>
<project ...<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>0.5.0.BUILD-SNAPSHOT</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring3</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency>  <dependency><groupId>org.hsqldb</groupId><artifactId>hsqldb</artifactId><scope>runtime</scope></dependency>  <dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-library</artifactId><scope>test</scope></dependency>      </dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin>           </plugins></build></project>

为了简洁起见,我删除了一些内容。

现在,将其与传统的pom.xml进行比较,其中通常会阐明所有依赖项:

.....<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>1.2.1</version></dependency><dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-library</artifactId><version>1.2.1</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.16</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>${aspectj.version}</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>${aspectj.version}</version></dependency><!-- dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency>        <dependency><groupId>net.sf.flexjson</groupId><artifactId>flexjson</artifactId><version>2.0</version></dependency><!-- Spring dependencies --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><version>${h2.version}</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>${hibernate.version}</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>${hibernate.version}</version><exclusions><exclusion><groupId>cglib</groupId><artifactId>cglib</artifactId></exclusion><exclusion><groupId>dom4j</groupId><artifactId>dom4j</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.hibernate.javax.persistence</groupId><artifactId>hibernate-jpa-2.0-api</artifactId><version>1.0.0.Final</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.3.0.Final</version><exclusions><exclusion><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId></exclusion><exclusion><groupId>com.sun.xml.bind</groupId><artifactId>jaxb-impl</artifactId></exclusion></exclusions></dependency><dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>1.0.0.GA</version></dependency><dependency><groupId>javax.transaction</groupId><artifactId>jta</artifactId><version>1.1</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>commons-pool</groupId><artifactId>commons-pool</artifactId><version>1.5.4</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency>  <dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.3</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion><exclusion><groupId>commons-pool</groupId><artifactId>commons-pool</artifactId></exclusion><exclusion><groupId>xerces</groupId><artifactId>xerces</artifactId></exclusion><exclusion><groupId>xerces</groupId><artifactId>xercesImpl</artifactId></exclusion><exclusion><groupId>xml-apis</groupId><artifactId>xml-apis</artifactId></exclusion></exclusions></dependency><!-- Jackson JSON Processor --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.2.1</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.2.1</version></dependency><dependency><groupId>com.fasterxml.jackson.module</groupId><artifactId>jackson-module-jaxb-annotations</artifactId><version>2.2.1</version></dependency><dependency><groupId>org.apache.tiles</groupId><artifactId>tiles-core</artifactId><version>2.2.1</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.tiles</groupId><artifactId>tiles-jsp</artifactId><version>2.2.1</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>commons-digester</groupId><artifactId>commons-digester</artifactId><version>2.0</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.2.1</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.1</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>javax.el</groupId><artifactId>el-api</artifactId><version>1.0</version><scope>provided</scope></dependency><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>1.6</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>${spring-security.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>${spring-security.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${spring-security.version}</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-taglibs</artifactId><version>${spring-security.version}</version></dependency><dependency><groupId>com.googlecode.flyway</groupId><artifactId>flyway-core</artifactId><version>1.7</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jpa</artifactId><version>${spring-data-jpa.version}</version></dependency>   </dependencies>
...

确实,这是对Spring特定依赖项管理方式的重大改进。

原因2:具有自动配置的快速独立模式

启动可运行的Web应用程序所需要做的就是运行–“ mvn spring:boot”,其余的工作由Spring boot完成。 它提供了一种使用嵌入式tomcat或jetty容器快速运行应用程序的方法,并基于类路径中可用的库自动配置应用程序,而无需用户提供任何明确的配置,例如。 如果在类路径中找到hsqldb库,则会自动将hsqldb配置为嵌入式数据库的数据源;如果在类路径中找到thymeleaf jar,则会自动将thymeleaf配置为模板引擎;如果在类路径中找到了hibernate库,则它将自动使用hibernate作为JPA提供者。 这样可以逐步改进正在运行的应用程序的开发– Spring boot为开发人员提供了一种方法,可以快速引导应用程序并对其进行原型设计,然后用更可靠的替代方法缓慢地替换一些自动配置的组件–改为使用Postgres DB hsqldb等

原因3:固执己见的依赖性

Spring Boot提供了一套经过认真测试的,经过良好测试的依赖项,这些依赖项与Spring项目生态系统可以很好地协同工作。 例如 使用slf4j作为日志依赖项进行logback,使用Servlet 3.0+ API,使用Jackson 2.2进行json处理,使用thymeleaf进行网页模板化。

结论:

Spring-boot项目仍处于繁重的开发过程中,但是即使在目前的状态下,它也具有使用Spring伞项目大大简化应用程序开发方面的巨大潜力。

这是一个使用Spring-boot的小型参考应用程序– https://github.com/bijukunjummen/spring-boot-mvc-test.git

参考: 为您的下一个基于Spring的应用程序考虑使用spring-boot的原因! 来自我们的JCG合作伙伴 Biju Kunjummen在all和杂物博客上。

翻译自: https://www.javacodegeeks.com/2013/09/reasons-to-consider-spring-boot-for-your-next-spring-based-application.html

为您的下一个基于Spring的应用程序考虑使用spring-boot的原因!相关推荐

  1. spring boo_为您的下一个基于Spring的应用程序考虑使用spring-boot的原因!

    spring boo Spring-boot提供了一种创建基于Spring的应用程序的快速方法. 对于下一个项目,有一些非常令人信服的理由考虑使用Spring-boot: 原因1:使用spring-b ...

  2. 一个基于OpenCV的Python程序,可以从摄像头捕获图像并识别简单数字。您可以根据需要进行调整,包括调整图像预处理和数字识别逻辑

    一个基于OpenCV的Python程序,可以从摄像头捕获图像并识别简单数字.您可以根据需要进行调整,包括调整图像预处理和数字识别逻辑 import cv2 import numpy as np imp ...

  3. 设计一个基于GUI的扑克程序

    2019独角兽企业重金招聘Python工程师标准>>> 在本课程教材扑克牌代码的基础上,设计一个基于GUI的扑克程序 a) 可以显示 52 张扑克牌,包括洗牌,发牌在内(2) b) ...

  4. Java里面jvr,寻找下一个结点 牛客网 程序员面试金典 C++ java Python

    寻找下一个结点 牛客网 程序员面试金典 C++ java Python 题目描述 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继). 给定树的根结点指针TreeNode* root ...

  5. 博弈论(二): 车联网环境下一个基于 博弈论的十字路口智能 交通控制算法

    问题描述 1.胆小鬼博弈 胆小鬼博弈(The game of  chicken)又译懦夫博弈,是博弈论中一个影响深远的模型,逻辑就是"不要命的最大".模型中,两名车手相对驱车而行, ...

  6. [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  7. 为知更新Android下一个apk安装多个程序入口图标

    Android开发中,一个工程对应一个AndroidManifest.xml文件,这个文件中包含有该项目的一些设置,如权限.SDk版本,Activity.Service信息等.一般而言,这个文件中会有 ...

  8. 分享一个基于 Spring Boot 的在线教育平台系统

    今天给大家开源一个基于springboot的在线教育平台系统,系统是小孟开发的,第一个版本是小锋开发的.该系统完全免费.白嫖.系统完美运行.具体的介绍如下所示. 1. 技术介绍 核心技术:Spring ...

  9. Labview 时间计数器 等待(ms) 等待下一个整数毫秒

    1.时间计数器获取自计算机启动以来所经过的毫秒数 2.等待(ms)使程序等待指定的ms数,返回时间计数器的当前值 <=>seelp() 3.等待下一个整数毫秒,整数毫秒用来指定VI运行的时 ...

最新文章

  1. python通过什么连接数据库_python中常用的各种数据库操作模块和连接实例
  2. 程序员面试题精选100题(34)-数组中只出现一次的数字[算法]
  3. 基本的SQL-SELECT语句练习
  4. 转账给张三,钱却被李四收到,如何狙击凶险的 App 漏洞?——专访娜迦CTO玩命...
  5. Java面试题:1-100之间的数,被放在数组a[99]中,有一个数没有包含在其中,用java代码找出这个数...
  6. MFC截图工具(不断更新)
  7. 数学连乘和累加运算符号_2020中考数学 初中数学有理数计算(干货)
  8. 囚徒困境(博弈论的诡计)
  9. 联通、华为双双辟谣:云计算不要太火
  10. 迅捷PDF转换器特点和使用步骤
  11. isSelected() 的使用
  12. 百度移动统计热力图和事件分析的坑
  13. 10本最热门科普书免费送!人工智能数学物理获奖经典佳作!
  14. 2021普华集团数字经济年度盛典在三亚盛大举行
  15. 我们为什么要结婚?(特别有道理)
  16. 和跨域CORS有关的几个请求头和响应头请求头
  17. 【Python】可视化科学计算笔记
  18. GRE词汇意群法速记
  19. 一次CPU过载的简单排查历程
  20. Codeforces Gym100543L:Outer space invaders(区间DP)

热门文章

  1. mysql 时间 1_(转)mysql日期时间函数1
  2. 9.2-控制单元CU的功能(学习笔记)
  3. MySQL的CRUD操作+使用视图
  4. 如何添加数据到session中
  5. 反射和配置文件的实际应用
  6. checkpoint_通过Main的Checkpoint Restore加快Java启动速度
  7. docker jib_Jib –为Spring Boot应用程序构建docker映像
  8. 安卓清理垃圾清理代码_从战中清理代码
  9. java bean 验证_Java Bean验证基础
  10. kafka connect_Kafka Connect在MapR上