Spring Boot –现代Java应用程序的基础

Spring Boot是Spring.io中一个相对较新的项目。 其目的是简化创建新的基于Spring Framework的项目,并通过应用一些约定来统一其配置。 这种关于配置的方法约定已经成功地应用于大多数所谓的现代Web框架中,例如Ruby on Rails,Django或Play! 框架。

在官方网站上,我们可以找到主要目标:

  • 为所有Spring开发提供根本上更快且可广泛访问的入门经验
  • 开箱即用,但随着需求开始偏离默认值而Swift摆脱困境
  • 提供一系列大型项目共有的非功能性功能(例如,嵌入式服务器,安全性,指标,运行状况检查,外部化配置)
  • 完全没有代码生成,也不需要XML配置

Spring-Boot不仅仅是另一个Spring Framework组件。 实际上更多。 它是您要编写的大多数(也许甚至是所有)下一代基于Spring的应用程序的基础。

Spring Framework本身是非常强大的工具。 它可以为您做很多事情,如果做不到,它可以与Java世界中的大多数其他框架配合使用。 它遭受一件事–在Spring中很难开始编码,并且经常被指责为复杂。 确实,提高复杂性是您要获得广泛功能和灵活性所要付出的代价。 这就解释了博客文章的大量流行,例如带有注释的Spring配置不带web.xml的Spring等。只有很多方法可以引导Spring(实际上是不错的)。

碰巧,付出的代价太高了-特别是在确实不需要这种灵活性的情况下。 我相信这就是Dropwizard和Play之类的框架! 框架诞生了。

好的,那么Spring Boot实际做什么?

  • 简化了项目的初始配置–从现在开始使用Spring比使用Rails更容易!
  • 开箱即用的项目可移植性–您可以使用嵌入式Tomcat或Jetty以及经典WAR将项目构建为JAR,并将其部署到任何应用程序服务器或云服务中
  • 提高您的开发速度– mvn spring-boot:run几秒钟内用Spring启动嵌入式Tomcat。 与JRebel结合使用,可以立即查看您所做的更改
  • 提供入门 -与所有Spring Framework系列组件的集成非常容易。 例如,如果您想使用AOP,只需包含spring-boot-starter-aop ,您就可以开始使用:所有必需的依赖项都在此处进行配置
  • 轻松启动功能/集成测试需求的SpringApplication.run(Application.class, args);SpringApplication.run(Application.class, args); @Before方法中,则您的应用程序已准备好进行Selenium或任何其他实际运行的应用程序测试。 您可以忘记在pre-integration-test阶段将应用程序部署到容器中
  • 提供基本指标,运行状况检查和其他不错的功能,例如通过CRaSH支持远程外壳程序 –是的–您现在可以通过SSH到应用程序

Spring Boot仍在开发中。 最新版本是0.5.0 M7,它绝对可以用于游戏和原型制作。 稳定的版本将在今年年初发布,所以不要浪费任何时间,并查看介绍基本用法的Spring Guides 。

我对进一步阅读/观看的建议:

  • Spring Boot –简化所有人的春天
  • Spring Boot网络研讨会

参考: Spring Boot –来自我们JCG合作伙伴 Maciej Walkowiak的现代Java应用程序基础,位于Software Development Journey博客上。

翻译自: https://www.javacodegeeks.com/2014/01/spring-boot-foundation-for-modern-java-application.html

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

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

相关文章

python qt快速入门_PyQt5快速入门(一)

PyQt5快速入门(一)前言为什么选择PyQt5作为GUI框架?API与Qt一致, 学会PyQt后再使用qt很简单开发迅速, 可视化操作,使用designer快速拖拽布局进行调试可以将文件打包成exe进行发布本节课内容(假设已经掌握python语法)搭建PyQt5环境测试PyQt5环境本节课使用环境python 3.6.6IDLE…

风险定量分析工具 龙卷风图 决策树形图 蒙特卡洛模拟

龙卷风图:是项目管理中用于在风险识别和定性分析之后,进行定量风险分析的技术----敏感性分析技术中最常用的一种图表技术。 敏感性分析:敏感性分析有助于确定哪些风险对项目具有最大的潜在影响。它把所有其他不确定因素保持在基准值的条件下…

java 先序遍历_二叉树的前序中序后序遍历(java代码)

importjava.util.*;public classtraversal {public static voidmain(String[] args) {List listnewArrayList<>();//构造二叉树TreeNode treeNode6newTreeNode(2,null,null);TreeNode treeNode5newTreeNode(1,null,null);TreeNode treeNode4newTreeNode(7,null,null);Tre…

js正则验证方法大全

/* 用途&#xff1a;检查输入手机号码是否正确 输入&#xff1a; s&#xff1a;字符串 返回&#xff1a; 如果通过验证返回true,否则返回false */ function checkMobile(s) { var regu /^[1][3][0-9]{9}$/; var re new RegExp(regu); if (re.test(s)) { return true; } els…

使用CLI设置WildFly绑定地址并关闭

仅使用命令行参数将WildFly绑定到主机名/ IP上非常容易。 我有一个简单的GNU / Linux盒子&#xff0c;可以用它玩各种东西&#xff0c;其中之一就是WildFly。 我使用以下命令开始在特定IP上监听WildFly&#xff1a; $> cd /opt/wildfly/wildfly-8.0.0.Beta1/bin $> ./s…

JS基本数据类型

基本数据类型&#xff1a; Undefined&#xff0c;null&#xff0c;boolean&#xff0c;number&#xff0c;string symbol&#xff08;ES6&#xff09; 复杂数据类型&#xff1a; object undefined: 变量声明未初始化&#xff0c;自动为undefined typeof 操作符检测变量数据类型…

用python自制背单词程序_c++自制背单词应用

文件结构&#xff1a;背词历史.log 用来存放背过的单词&#xff0c;存放的格式是年-月-日 时&#xff1a;分&#xff1a;秒单词 词性 中文解释生词本.txt 用来存放当下要背诵的单词列表&#xff0c;格式是单词 词性 中文解释历史记录.txt 用来当做按照时间查询生词的缓存&#…

mongodb lbs java_LBS JAVA Spring mongoDB

基本介绍位置服务(LBS)解决的主要问题是当前位置周围某个范围内的人或场所.在传统的解决方案,开发人员需要根据复杂的几何运算与大量的SQL语句进行查找,这无疑加大的开发人员的开发难度.现在我们需要更为方便的解决方案,MongoDB为我们完美解决此类LBS问题.此篇文章也主要使用Sp…

让height: 100%生效

html&#xff1a; <body><div class"box"></div> </body> css&#xff1a; .box{position: fixed;// 使用fixed定位width: 100%;height: 100%;background: orange;} 补充&#xff1a; &#xff08;父元素不设高度&#xff0c;如何让子元素高…

hash

HashSet Set接口&#xff0c;元素不能重复&#xff0c;要确保重写hashCode&#xff08;&#xff09;方法和equals&#xff08;&#xff09;方法&#xff0c;这样才能比较对象的值是否相等HashMap Map接口&#xff0c;key可为null线程安全ConcurrentHashMap&#xff08;Map接口&…

推土机:将JAXB对象映射到业务/域对象

Dozer是开放源代码&#xff08; Apache 2许可 &#xff09;“ Java Bean到Java Bean映射器&#xff0c;可将数据从一个对象递归复制到另一个对象”。 正如从其主页上的描述所描述的那样&#xff0c;它用于映射两个JavaBeans实例&#xff0c;以在实例之间进行自动数据复制。 尽管…

openssl不是内部或外部命令_OpenSSL新架构蓝图

概述日前OpenSSL官网公布了未来OpenSSL的架构蓝图。作为战略性的架构目标&#xff0c;需要大量的版本迭代本文档概述了OpenSSL战略架构。它需要多个版本的迭代从目前最新的版本1.1开始直到3.0甚至是4.0最终实现。由于版本架构变动非常大&#xff0c;涉及大量的变化和迭代&#…

eclipse安装Hadoop-0.20.2插件

因为在使用Hadoop-0.20.2这个古董&#xff0c;需要使用它自带的eclipse插件&#xff0c;而我最初安装的是现代的eclipse4.10.0。 在经历两天&#xff0c;以及以下种种尝试之后&#xff0c;均以失败告终&#xff1a; 1.网上找适合的版本&#xff0c;据说有人编译好的hadoop-0.20…

java setcontenttype_response.setContentType()在Java过滤器中重置

我试图在过滤器中将压缩文件的内容类型设置为正确的mime类型&#xff0c;而不是application / gzip。这是我的一些代码&#xff1a;public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, Serv…

休眠事实:始终检查Criteria API SQL查询

Criteria API对于动态构建查询非常有用&#xff0c;但这是我使用它的唯一用例。 每当您有一个带有N个过滤器且可以以任意M个组合到达的UI时&#xff0c;都有一个API动态构造查询是有意义的&#xff0c;因为串联字符串始终是我所不愿使用的路径。 问题是&#xff0c;您是否知道…

JS基础(一)

1、JS脚本放置位置 页面内的JS脚本中&#xff0c;各种公共函数和变量应放在head标签之间&#xff0c;而将页面加载期间执行的代码、dom对象初始化以及与dom相关的全局引用赋值操作放在body标签之间&#xff0c;如果没有特殊要求&#xff0c;不妨放在body标签之前。 2、js命名…

treegrid,可以展开的jqgrid树

效果图 html部分 <div class"padding20 bgWhite marginTop20"> <div class"cus-grid row" id"grid-wrap"> <div class"col-lg-12"> <table id"list2"></table> …

winfrom软件开发汽车测试_ETci — 全自动软件测试调度(持续集成)平台

ETci 提供了编译- 测试- 发布解决方案&#xff0c;包括&#xff1a;自动提取配置库代码进行自动构建, 自动调度静态测试工具(如QAC)进行静态测试&#xff0c;自动调度单元测试工具(如Tessy)开展动态测试&#xff0c;自动调度HIL 自动化测试系统等。使得开发、测试团队在软件开发…

LVS负载均衡群集(NAT)

----构建NAT模式的LVS群集----------client---------------LVS----------------WEB1-----------WEB2------------NFS----2.2.2.100 eth0:2.2.2.1 eth1:192.168.1.1 192.168.1.10 192.168.1.20 192.168.1.200 一、准备工作1、添加模块[rootlocalhost ~]# modprobe ip_vs[rootloc…

查询锁表并解锁

查询锁定的表:SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, l.os_user_name, s.machine, s.terminal, o.object_name, s.logon_time FROM v$locked_object l, all_objects o, v$session s WHERE l.object_id o.object_id AND l.session_id s.sid …