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

spring boo

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

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

考虑使用CR2是使用h2数据库来实现的,并考虑使用Spring-boot来启动CRUD Web应用程序所需的工作,其中Spring-Data提供了数据访问抽象。 该项目所需的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 boo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自适应滤波实例之系统辨识

实验模型 x(n):随机信号,服从N(0,1)分布 h(n):未知的系统响应(由5阶FIR低通滤波器模拟) h=[0.2,0.5,0.7,-0.5,0.2]; d(n):期望信号,d(n)=x(n)*h(n) 目标:根据接收端接收信号r(n)(此时即为期望信号d(n))和训练序列x’(n)求未知的h(n) LMS实验结果 设自适应滤波器…

jdbc数据库连接池C3P0和Druid德鲁伊,Java与MySQL数据库交互

文章目录一、 连接池的必要性二、数据库连接池技术三、多种开源的数据库连接池四、C3P0数据库连接池五、Druid&#xff08;德鲁伊&#xff09;数据库连接池六、C3P0和Druid驱动jar包一、 连接池的必要性 在使用开发基于数据库的web程序时&#xff0c;传统的模式基本是按以下步…

使用Spring Boot构建REST Web服务

本教程提供了有关如何使用Spring Boot构建Restfull Web服务的分步指南。 先决条件&#xff1a; Eclipse IDE&#xff08;最新版本&#xff09; Maven的4 Java 1.8 1.创建Maven Web项目 打开eclipse&#xff0c;然后创建一个新的Maven Web项目&#xff0c;并将其命名为Spri…

Apache-DBUtils实现CRUD操作,已封装的API实现jdbc对数据库进行操作

文章目录一、Apache-DBUtils简介二、主要API的使用1、DbUtils类2、QueryRunner类3、ResultSetHandler接口及实现类三、Apache-DBUtils驱动下载一、Apache-DBUtils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库&#xff0c;它是对JDBC的简单封装&#xff0c…

自适应滤波实例之系统逆辨识(以及系统零极点对逆辨识效果的影响分析)

实验模型 x(n):随机信号,服从N(0,1)分布 h(n):未知的系统响应(由10阶FIR低通滤波器模拟) h=[0.03,-0.04,0.06,-0.2,-0.5,0.75,0.37,0.24,0.01,0.06]; d(n):期望信号,d(n)=x(n)*h(n) 目标:根据接收端接收信号r(n)和训练序列x’(n) (此时即为期望信号d(n)),求未知…

卡尔曼滤波实例之系统逆辨识

实验模型 x(n):随机信号,服从N(0,1)分布 h(n):未知的系统响应(由10阶FIR低通滤波器模拟) h=[0.03,-0.04,0.06,-0.2,-0.5,0.75,0.37,0.24,0.01,0.06]; d(n):期望信号,d(n)=x(n)*h(n) 目标:根据接收端接收信号r(n)和训练序列x’(n) (此时即为期望信号d(n)),求未知…

static和瞬态_具有瞬态属性的视图对象的钝化和激活

static和瞬态在应用程序模块的钝化/激活周期内&#xff0c;框架也将钝化并激活视图对象。 通常&#xff0c;框架保存有关VO状态&#xff0c;当前行&#xff0c;绑定变量值等的信息。 但是没有数据。 激活视图对象后&#xff0c;将重新执行VO的查询&#xff0c;并重新获取数据。…

你是不是已经超纲了?一文解决JavaWeb中要求的HTML,是什么样的?

文章目录一、正经的开始 &#x1f469;&#x1f3fb;&#x1f469;&#x1f3fb;&#x1f469;&#x1f3fb;二、HTML简介1、HTML“化简为繁”2、超文本“醉翁之意”3、标记“画地为牢”4、永远的HelloWorld5、HTML文件“解衣”6、HTML“潜规则”三、使用HTML展示文章1、标题“…

自适应滤波实例之噪声抵消

实验模型 s(n)是立体声音乐信号,fs=8kHz,平均功率为0.0047; v(n)是零均值高斯白噪声,方差为1; h(n)是由5阶FIR低通滤器模拟,带宽为[0, 0.35fs]; 目标:d(n)中包含音乐信号s’(n)和白噪声v’(n),v’(n)为v(n)经过系统h(n)后的输出,则x(n)=v(n)与v’(n)具有相关性,利…

初学JavaWeb,前端css要不要了解一下啊?一文学会JavaWeb中css的简单应用

文章目录一、设置CSS样式二、CSS代码语法三、CSS选择器四、css文档手册分享关于JavaWeb中的HTML&#xff1a;《你是不是已经超纲了&#xff1f;一文解决JavaWeb中要求的HTML&#xff0c;是什么样的&#xff1f;》 一、设置CSS样式 有三种设置方式。 1、在HTML标签内设置&#…

了解Java中的可克隆接口

什么是对象克隆&#xff1f; 对象克隆是生成具有不同名称的对象的精确字段到字段副本的过程。 克隆的对象在内存中有自己的空间&#xff0c;可在其中复制原始对象的内容。 这就是为什么在克隆后更改原始对象的内容时&#xff0c;所做的更改不会反映在克隆对象中的原因。 我们可…

堆栈图解CSAPP Bomb Lab实验解析

CSAPP Bomb Lab 实验解析 Bomblab是csapp的第二个配套实验&#xff0c;该实验提供了一个bomb二进制文件和一个bomb.c源文件&#xff0c;我们的目标是运行bomb并按照提示一步步输入字符串&#xff0c;直到完成整个拆炸弹的流程。但是源文件中只提供了部分代码&#xff0c;所以我…

初学JavaWeb需要的前端js,JavaScript是什么样的?

文章目录一、JavaScript简介二、HelloWorld三、JavaScript基本语法四、DOM五、JavaScript事件驱动六、网页制作完全手册分享关于HTML和css详见&#xff1a;《JavaWeb中的HTML和css》 一、JavaScript简介 1、起源 1995年&#xff0c;JavaScript由Netscape公司的Brendan Eich在网…

OD汇编指令集(不断更新)

一、快捷键 F7 执行一行代码&#xff0c;遇到 CALL 等子程序时会进入其中&#xff0c;进入后首先会停留在子程序的第一条指令上。 F8 执行一行代码&#xff0c;遇到 CALL 等子程序不进入其代码。 F2 在显著行设置断点&#xff0c;再次按 F2 删除断点。 F9 F9运行调试程序&…

踩坑+排雷新版IDEA2021.1创建配置Javaweb项目并部署在Tomcat容器,完整详细

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 微信公众号&#xff1a;创享日记 发送&#xff1a;tomcat 获取…

微机原理实验1:字符串匹配程序实验

一、实验目的 1&#xff0e;掌握分支程序的设计方法。 2&#xff0e;熟悉在PC机上建立、汇编、链接、调试和运行8086汇编程序的过程。 二、实验内容 1&#xff0e;比较两个字符串STRING1和STRING2所含的字符是否相同&#xff0c;若相同则显示‘Match’&#xff0c;否则显示‘…

终于让Web前端和Tomcat(Java服务器)和MySQL(数据库)连在一起了

文章目录一、先在Web前端来个表单二、添加Tomcat依赖三、引入jdbc和dbutils四、编写Servlet类五、关联模块《踩坑排雷新版IDEA2021.1创建配置Javaweb项目并部署在Tomcat容器》 一、先在Web前端来个表单 如图在web项目目录下创建一个html文件。 文件内容可以参考如下。 <!D…

apache.camel_Apache Camel 2.12 –支持后退,以减少不太积极的轮询路线

apache.camel这是另一篇博客文章&#xff0c;介绍了下一个Apache Camel 2.12版本中即将进行的改进和新功能。 在上一个博客中&#xff0c;我谈到了路由直接支持的cron表达式 。 这篇博客文章与之相关&#xff0c;因为我们对轮询路由具有另一个新功能&#xff08;使用计划的轮询…

微机原理实验2:多字节BCD加法实验

一、实验目的 掌握数据传送、算术指令和循环指令的用法。 二、实验内容 将两个多位十进制数相加。要求加数,被加数均以ASCII码形式存放在以DATA1和DATA2为首的5个内存单元中( 低位在前)&#xff0c;结果存在DATA1处。 三、程序清单 CRLF MACRO …

解决Tomcat8及Tomcat7下http的post、get请求中参数中文乱码问题

文章目录一、post请求方式二、get请求方式一、post请求方式 Tomcat 8 在获取参数之前添加如下代码&#xff1a; Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws UnsupportedEncodingException {req.setCharacterEncoding("U…