点击关注上方“Java技术江湖”,设为“置顶或星标”,第一时间送达技术干货。

本篇是紧接着上一篇展开的,后续也会有一系列关于Spring Boot相关的文章,欢迎有需要的小伙伴关注!

一、Web应用开发背景

使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架、库以及整个生态系统。经过这么长时间的发展,Java作为一个成熟的语言,也演化出了非常成熟的生态系统,这也是许多公司采用Java作为主流的语言进行服务器端开发的原因,也是为什么Java一直保持着非常活跃的用户群体的原因。

最受Java开发者喜好的框架当属Spring,Spring也成为了在Java EE开发中真正意义上的标准,但是随着新技术的发展,脚本语言大行其道的时代(Node JS,Ruby,Groovy,Scala等),Java EE使用Spring逐渐变得笨重起来,大量的XML文件存在与项目中,繁琐的配置,整合第三方框架的配置问题,低下的开发效率和部署效率等等问题。

这些问题在不断的社区反馈下,Spring团队也开发出了相应的框架:Spring Boot。Spring Boot可以说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一,也被人看作是:Java EE开发的颠覆者!

二、Spring Boot解决的问题

(1) Spring Boot使编码变简单

(2) Spring Boot使配置变简单

(3) Spring Boot使部署变简单

(4) Spring Boot使监控变简单

(5) Spring的不足

三、Spring Boot的优点

官方地址:https://spring.io/projects/spring-boot

Spring Boot继承了Spring的优点,并新增了一些新功能和特性:

(1)SpringBoot是伴随着Spring4.0诞生的,一经推出,引起了巨大的反向; 
(2)从字面理解,Boot是引导的意思,因此SpringBoot帮助开发者快速搭建Spring框架; 
(3)SpringBoot帮助开发者快速启动一个Web容器; 
(4)SpringBoot继承了原有Spring框架的优秀基因; 
(5)SpringBoot简化了使用Spring的过程; 
(6)Spring Boot为我们带来了脚本语言开发的效率,但是Spring Boot并没有让我们意外的新技术,都是Java EE开发者常见的额技术。

四、Spring Boot主要特性

(1)遵循“习惯优于配置”的原则,使用Spring Boot只需要很少的配置,大部分的时候我们直接使用默认的配置即可; 
(2)项目快速搭建,可以无需配置的自动整合第三方的框架; 
(3)可以完全不使用XML配置文件,只需要自动配置和Java Config; 
(4)内嵌Servlet容器,降低了对环境的要求,可以使用命令直接执行项目,应用可用jar包执行:java -jar; 
(5)提供了starter POM, 能够非常方便的进行包管理, 很大程度上减少了jar hell或者dependency hell; 
(6)运行中应用状态的监控; 
(7)对主流开发框架的无配置集成; 
(8)与云计算的天然继承;

五、Spring Boot的核心功能

(1)独立运行的Spring项目

Spring Boot可以以jar包的形式进行独立的运行,使用:java -jar xx.jar 就可以成功的运行项目,或者在应用项目的主程序中运行main函数即可;

(2)内嵌的Servlet容器

内嵌容器,使得我们可以执行运行项目的主程序main函数,实现项目的快速运行;

主程序代码SpringbootDemoApplication.java

(3)提供starter简化Manen配置

Spring Boot提供了一系列的starter pom用来简化我们的Maven依赖,下边是创建一个web项目中自动包含的依赖,使用的starter pom依赖为:spring-boot-starter-web

Spring Boot官网还提供了很多的starter pom,请参考:

https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/reference/htmlsingle/#using-boot-starter

(4)自动配置Spring

Spring Boot会根据我们项目中类路径的jar包/类,为jar包的类进行自动配置Bean,这样一来就大大的简化了我们的配置。当然,这只是Spring考虑到的大多数的使用场景,在一些特殊情况,我们还需要自定义自动配置;

(5)无代码生成和XML配置

Spring Boot神奇的地方不是借助于代码生成来实现的,而是通过条件注解的方式来实现的,这也是Spring 4.x的新特性。

六、Spring Boot的快速搭建案例

下边使用的是IDEA快速搭建一个Spring Boot项目

(1)File—-New—New Project

(2)点击Next填写相应的信息

(3)点击Next,选择Dependencies,这里创建Web项目选择—–Web:

(4)点击Next,设置项目名称,这里默认设置,点击Next之后,项目等一下就创建好了

找到应用程序的主函数,运行即可:

注意,在pom文件里的java版本这个要和你的机子上一致!我的是1.8,默认创建项目的时候为1.8:

后期还会继续写一系列Spring Boot相关的文章,欢迎有需要的小伙伴关注!

推荐阅读:

为什么我会选择走 Java 这条路?

喜欢就点个“在看”吧!

jar包是什么意思_为什么越来越多的开发者选择使用Spring Boot?相关推荐

  1. 为什么越来越多的开发者选择使用Spring Boot

    Web应用开发背景 使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架,库以及整个生态系统.经过这么长时间的发展,Java作为一个成熟的语言, ...

  2. 水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合

    dada-report报表整合UReport报表设计器工具 结合日常工作和学习实践,针对传统报表子站面临的问题,尝试借助UReport报表设计器解决 1.可在现有工程基础上引入Ureport2报表设计 ...

  3. idea 上传jar包到远程仓库_在idea打包并上传到云服务项目流程分析

    一.首先 得先在idea打包好. 我使用的是springboot框架的项目 1.先开启自己的项目 在idea的最右侧有个这个边框,点击Maven 如果之前有该项目的打包,可以点击clean去清理之前的 ...

  4. jar包是什么意思_面试难度五颗星:JVM有Full GC,为什么还会 OutOfMemoryError?

    点击上方蓝色"后端面试那些事儿",选择"设为星标" 学最好的别人,做最好的我们 来源:R 大 zhihu.com/question/38511221 问题: R ...

  5. 学python最重要的是_为什么越来越多的人选择学Python?

    为什么越来越多的人选择学Python? 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是一种开发语 ...

  6. saas是什么意思_为什么越来越多的人选择SaaS模式的crm客户管理系统?

    SaaS近几年在国内逐渐升温,很多企业管理者都开始了解SaaS是什么意思,SaaS是企业根据需要,从SaaS提供商获取软件使用权的,直接通过互联网就可进行操作.对于我国大多数中小企业来说,选择SaaS ...

  7. 开课吧python是针对哪些人的_为什么越来越多的人选择学习Python?开课吧告诉你答案...

    在一些互联网论坛里总能看到有些人问最近这些年什么编程语言最值得学习,小编可以毫不犹豫地告诉你是Python. 为什么越来越多的人选择学习Python呢?无论是刚入门的程序员,还是在BAT拿着天价高薪的 ...

  8. saas系统用的什么语音_为什么越来越多的人选择SaaS模式的crm客户管理系统?

    SaaS近几年在国内逐渐升温,很多企业管理者都开始了解SaaS是什么意思,SaaS是企业根据需要,从SaaS提供商获取软件使用权的,直接通过互联网就可进行操作.对于我国大多数中小企业来说,选择SaaS ...

  9. mysql root 访问被拒绝_用户'root'@'localhost'的访问被拒绝-Spring Boot和MySQL连接

    我正在尝试从春季启动连接MySQL数据库,但出现以下错误: java.sql.SQLException: Access denied for user 'root'@'localhost' (usin ...

最新文章

  1. 数据结构与算法(7-4)最短路径(迪杰斯特拉(Dijkstra)算法、弗洛伊德(Floyd)算法)
  2. 精简linux系统的制作
  3. 无法将stdClass类型的对象用作数组?
  4. SVN关于忽略xcuserdata目录
  5. df命令,du命令,磁盘分区
  6. 电赛 | 电源题软件如何准备?
  7. 国内ip信息库的组建
  8. 通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多系统的统一登录(数据库源码级)附源码...
  9. 这11个JavaScript小技巧,你在大多数教程中是找不到的!
  10. RabbitMQ、Redis
  11. 强大的Qtstylesheet
  12. 网易视频云:搜索意图识别浅析
  13. 【沙龙干货分享】你要知道的N个Android适配问题
  14. mib浏览器_大众汽车的第二代MIB信息娱乐系统图解
  15. Mac小白用户看过来,教你这样卸载Mac应用程序
  16. Canvas画各种线
  17. Python数据分析面试实战
  18. 3-6月计算机类学术会议合集
  19. 文献管理软件 Endnote 简易上手
  20. 直扩同步的跟踪 matlab,基于FPGA的猝发式直扩载波同步技术研究与实现

热门文章

  1. 风波中的滴滴:离无人驾驶落地还有多远?
  2. 马云马斯克激辩:AI 是威胁还是被低估了?
  3. 为什么程序员应该避免间接代码?
  4. Google Cloud大规模宕机;中国正式进入 5G 商用元年!苹果发布SwiftUI |开发者周刊...
  5. Java 11 将至,除了 Oracle JDK 还有这些版本!
  6. 如何开发一款可以删除个人信息的社交软件?小扎做到了!
  7. 谷歌如何获取了我们的个人数据?
  8. 成立一年 百度搜索公司迎来首任 CTO
  9. python连接postgis_python连接postgres方法
  10. Java面试官:Kafka集群管理