学习SpringBoot有什么优点呢?哪里学呢

Spring Boot学习总结(3)——SpringBoot魅力所在 - CSDN博客
Spring Boot学习总结(3)——SpringBoot魅力所在
使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架,库以及整个生态系统。经过这么长时间的发展,Java作为一个成熟的语言,也演化出了非常成熟的生态系统,这也是许多公司采用Java作为主流的语言进行服务器端开发的原因,也是为什么Java一直保持着非常活跃的用户群。然而这个生态系统纷繁复杂,一个非常简单的Java
Web应用程序都有可能应用到以下技术:
Java开发分为两个阵营,一个是由Oracle 为代表的Java EE阵营,这是Web开发的官方参考标准。其中核心技术主要有Servlet, EJB, JMS, JSF, JDBC/JPA, JAXB, JAX-WS等。另一个阵营则是由开源社区以及Pivotal代表的Spring阵营,其中核心技术主要有
Spring Framework, Spring MVC, Spring Data, Spring Security等等。
Spring从最开始作为依赖注入的Bean container,逐渐发展为Java应用开发的主流框架。Java EE因为其臃肿,复杂,难以使用的结构,被很多Java程序员抛弃。从Java EE6开始才引入了CDI (Context Dependency Injection),而且Java
EE 的设计思想非常学术化, Gavin King等人脱离了工业界的需求,使得Java EE开发非常复杂。JSF甚至为Java之父James Gosling诟病。相反在Spring社区,越来越多现代化的应用开发方法被融入进来,形成不同的Spring项目。
什么是Spring Boot?
Spring Boot便是一个社区反馈推动的项目. Spring Boot可以说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一。Spring Boot主要包含以下特性:
为什么Spring Boot是颠覆性的?
为什么说Spring Boot是颠覆性的呢?因为它彻底改变了Java应用开发的模式。以往我们做Spring应用开发,要知道配置哪些类来让Hibernate和Spring一起工作,要知道如何配置view resolver来控制哪个模版进行视图层的展示。经常写了一大堆代码之后发现只是在处理Spring框架本身的配置,根本一行业务逻辑都没有写。开发完成之后,我们还要考虑部署的问题,且不说部署到非常笨重的应用服务器,比如WebSphere,
Weblogic或者JBoss,即使部署到Tomcat或者Jetty这种轻量级容器上面,我们要知道如何配置容器,如何修改配置文件等等。而且在多应用部署到同一个Tomcat的时候,经常会出现冲突。就算我们花了很大力气解决了这些问题,程序部署成功之后,我们很难去了解这个程序的运行状态。有可能我们要配置很多第三方工具来去知道这个应用程序运行状态如何,有哪些参数,环境变量是什么。尽管Spring帮我们解决了依赖注入的问题,简化了一些MVC的流程,但是Spring框架本身集成了越来越多东西,导致其越来越难配置,维护成本成直线上升。很多时候Java程序员们看到Python,
Ruby或者JavaScript程序员敲几个命令安装一些库,然后简单的敲几行代码,引入一些框架比如flask,然后直接一个简单的API就可以跑起来了。这时候Java程序员可能还在研究该使用Maven里面的哪个库,如何在代码里面进行配置呢。
传统Spring开发对决Spring Boot应用开发
接下来我会通过具体例子对比传统的Spring应用开发和Spring Boot应用开发。假如我们开发一个Hello World的REST API,传统的Spring开发应该这么做.
1. 如果使用Maven进行包管理,编写pom.xml 如下
如上可以看到为了编写简单的hello world REST API我们引入了Spring Core, Spring Web, Spring Web MVC, Java Servlet and Jackson这么多包依赖。可以想象复杂一点的程序这个pom会变成什么样。。。
2. 编写HelloWorldInitializer class如下
这个已经是非常简单的Java Config了,在Servlet 3.0之前用XML配置Spring的小伙伴们现在估计已经崩溃。
3. 编写HelloWorldConfiguration class
注意到我们这个类里面一行业务逻辑都没有哦。。。
4. 真正开始编写HelloWorldRestController
5. 下载Tomcat
6. 打包部署到Tomcat上
7.访问localhost:8080/HelloWorld, 你终于看到了Hello World…
写到这里我已经累觉不爱了。。。
接下来Java老司机会带领你们感受一下Spring Boot的魅力:
1. 编写pom.xml
注意到我们只引入了一个包依赖,并且版本什么的就随他去吧
2. 编写main 函数
我们在这里标记HelloWorldDemoApplication class为SpringBootApplication, Spring Boot 在后台会根据这个标记进行很多自动配置,比如配置MVC,配置包扫描,注入必要的类,注入自动配置的类等等。
这里的main函数是一个java标准的main函数,这个相当于应用程序入口,servlet container会在启动的时候找到这个入口,启动Spring container,完成初始化。
3. 编写HelloWorldRestController
4. 直接启动应用程序,不需要部署
5. 访问 http:// localhost:8080 就可以直接看到Hello World了
之前HelloWorld程序对于新手来说至少要花个10-20分钟之类的,有了SpringBoot, 最多3分钟之内搞定HelloWorld不是梦。
这里我只是简单的对SpringBoot进行了讲解,SpringBoot有非常多值得深入讨论的东西,它不仅让我们做Java开发变的简单有效,更重要的是SpringBoot彻底颠覆了我们对Java开发的认识,让我们第一次有了”原来Java开发可以这么做” 的感觉。有了SpringBoot之后,Java程序员可以更专注于业务逻辑,进行更敏捷的开发。
本文已收录于以下专栏:
相关文章推荐
摘要:Spring Boots是为了帮助开发人员很容易的创建出独立运行和产品级别的基于 Spring 框架的应用。
从 Spring Boot 项目名称中的 Boot 可以看出来,Spring ...
springboot总结
一、Spring Boot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发...
目的:在JSF2中可以使用Spring中的Bean,可以通过注解方式配置使用。环境:在JSF2.2,Spring3.2.7版本测试通过。配置过程概述:
整合过程主要包括一下三个方面的配置:web.xm...
既然业务逻辑复杂,那意味着项目前期的业务建模、需求分析、分析设计极为重要,直接抛开这几个阶段进入技术实施开发阶段,不管套用什么设计模式、架构模式,系统的扩展性肯定难以保证。
项目的扩展性虽然最终体现为...
什么是事务?
我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合。由于数据操作在顺序执行的过程中,任何一步操作都有可能发生异常,异常会导致后续操作无法完成,此时由于业务...
springboot 一些常用的注解介绍Author QiuRiMangCao 秋日芒草@SpringBootApplication(scanBasePackages = {“com.qiu”}, e...
【译者按】这是Matt Raible在今年6月24-27号召开的JA-SIG夏季会议上所作的主题演讲,Matt从众多方面对Java Web层框架做了一个全面、深入的比较。笔者认为这是一份及时的文档,...
怎么使用jsp上面起了疑问,查阅了多方资料,找到过其他人的博客的描述,也找到了spring在github上的给出的例子,看完后稍微改动后成功
整合jsp,于是决定将整合过程记载下来。
无论使用的是...
对Spring Boot而言,@SpringBootApplication的作用就是@Configuration, @EnableAutoConfiguration与@ComponentScan的集合...
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)"简介 在您第 1 次接触和学习 Spring 框架的时候,是否因为其繁杂的配置而退却了?在你第 n 次使用 Spring 框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用 Spring Boot 来让你更易上手,更简单快捷地构建 Spring 应用! Spring Boot
黑客派 8415 号会员
SpringBoot 入门
在您第 1 次接触和学习 Spring 框架的时候,是否因为其繁杂的配置而退却了?在你第 n 次使用 Spring 框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用 Spring Boot 来让你更易上手,更简单快捷地构建 Spring 应用!
Spring Boot 让我们的 Spring 应用变的更轻量化。比如:你可以仅仅依靠一个 Java 类来运行一个 Spring 引用。你也可以打包你的应用为 jar 并通过使用 java -jar 来运行你的 Spring Web 应用。
Spring Boot 的主要优点:
为所有 Spring 开发者更快的入门
开箱即用,提供各种默认配置来简化项目配置
内嵌式容器简化 Web 项目
没有冗余代码生成和 XML 配置的要求
本章主要目标完成 Spring Boot 基础项目的构建,并且实现一个简单的 Http 请求处理,通过这个例子对 Spring Boot 有一个初步的了解,并体验其结构简单、开发快速的特性。
系统要求:
Java 7 及以上
Spring Framework 4.1.5 及以上
本文采用Java 1.8.0_73、Spring Boot 1.3.2调试通过。
使用 Maven 构建项目
通过SPRING INITIALIZR工具产生基础项目
选择构建工具Maven Project、Spring Boot 版本1.3.2以及一些工程基本信息,可参考下图所示SPRING INITIALIZR
点击Generate Project下载项目压缩包
解压项目包,并用 IDE 以Maven项目导入,以IntelliJ IDEA 14为例:
菜单中选择File–&New–&Project from Existing Sources...
选择解压后的项目文件夹,点击OK
点击Import project from external model并选择Maven,点击Next到底为止。
若你的环境有多个版本的 JDK,注意到选择Java SDK的时候请选择Java 7以上的版本
项目结构解析
通过上面步骤完成了基础项目的创建,如上图所示,Spring Boot 的基础结构共三个文件(具体路径根据用户生成项目时填写的 Group 所有差异):
src/main/java下的程序入口:Chapter1Application
src/main/resources下的配置文件:application.properties
src/test/下的测试入口:Chapter1ApplicationTests
生成的Chapter1Application和Chapter1ApplicationTests类都可以直接运行来启动当前创建的项目,由于目前该项目未配合任何数据访问或 Web 模块,程序会在加载完 Spring 之后结束运行。
引入 Web 模块
当前的pom.xml内容如下,仅引入了两个模块:
spring-boot-starter:核心模块,包括自动配置支持、日志和 YAML
spring-boot-starter-test:测试模块,包括 JUnit、Hamcrest、Mockito
&org.springframework.boot
&spring-boot-starter
&org.springframework.boot
&spring-boot-starter-test
引入 Web 模块,需添加spring-boot-starter-web模块:
&org.springframework.boot
&spring-boot-starter-web
编写 HelloWorld 服务
创建package命名为com.didispace.web(根据实际情况修改)
创建HelloController类,内容如下
@RestController
class HelloController {
@RequestMapping(
public String index() {
"Hello World";
启动主程序,打开浏览器访问,可以看到页面输出Hello World
编写单元测试用例
打开的src/test/下的测试入口Chapter1ApplicationTests类。下面编写一个简单的单元测试来模拟 http 请求,具体如下:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
class Chapter1ApplicationTests {
private MockM
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(
new HelloController()).build();
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get(
"/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo(
"Hello World")));
使用MockServletContext来构建一个空的WebApplicationContext,这样我们创建的HelloController就可以在@Before函数中创建并传递到MockMvcBuilders.standaloneSetup()函数中。
注意引入下面内容,让status、content、equalTo函数可用
static org.hamcrest.Matchers.equalTo;
static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
至此已完成目标,通过 Maven 构建了一个空白 Spring Boot 项目,再通过引入 web 模块实现了一个简单的请求处理。
Feel easy about trust.
Powered by
2.2.0 o 81msSpring Boot:让 Spring 应用开发更容易 - 开源软件 - ITeye资讯
相关知识库:
SpringSource社区今天发布了一个新的项目,该项目旨在帮助开发者更容易地创建基于Spring的应用程序和服务,使得现有的和新的Spring开发者能够最快速地获得所需要的Spring功能。
Spring Boot项目的主要目标如下:
为所有的Spring开发工作提供一个更快、更广泛的入门经验
开箱即用,你也可以通过修改默认值来快速满足你的项目的需求
提供了一系列大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
Spring Boot不生成代码,且完全不需要XML配置。下图显示了Spring Boot在Spring生态系统中的位置。
Spring Boot还附带了一个命令行工具,你可以用来快速创建Spring原型应用,它提供了一种让你的Spring应用起步的最快速的方式。该工具允许运行Groovy脚本,这意味着你可以使用类似于Java的语法。
详细信息:
项目地址:
luoruici 写道/tutorial/spring-boot-overview这篇中文介绍挺不错的,学习Spring Boot的童鞋可以参考
/tutorial/spring-boot-overview这篇中文介绍挺不错的,学习Spring Boot的童鞋可以参考
其实我是来看看学习学习的
半人马 写道marcofly 写道部分功能和spring roo重复了,是不是有重复造轮子的嫌疑spring roo做到今天成了个笑话。但开发过程中的缺口仍然存在,希望这个产品能更实际一点。是不是笑话不知道,反正我现在用grails,我觉得要搞就彻底点。
看看~~路过~~楼主加油
marcofly 写道部分功能和spring roo重复了,是不是有重复造轮子的嫌疑spring roo做到今天成了个笑话。但开发过程中的缺口仍然存在,希望这个产品能更实际一点。
部分功能和spring roo重复了,是不是有重复造轮子的嫌疑
相关资源推荐在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
作为新手,对Spring boot比较迷茫,它和spring有什么关系呢?该如何取舍?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
新手直接去买本书啃啃吧,or
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
用过Spring MVC的话应该会比较好理解Spring boot,Spring boot的功能类似于Spring MVC,但是Spring boot帮你做了许多自动的配置。
可以先看看官方的。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
博客:林祥纤的博客 - 从零开始学Spring Boot分类文章列表 - ITeye技术网站
网易云课堂:林祥纤:从零开始学Spring Boot
优酷视频:简简单单,爱你的自频道-优酷视频
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Spring配置太繁琐了,Spring boot帮助你完成可以帮助你完成这些.有java基础的话可以直接找写SpringBoot相关视频看下.尝试着移植一些WEB项目.在着期间会遇到各种问题.多多使用搜索功能.
我也是新手
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不用取舍。按照我的理解,你需要先学会Spring,才能去学Spring Boot。Spring 框架包含了相当多的模块:
Spring 核心模块,包括Spring Core,Spring Beans等
数据访问与集成,包括 Spring JDBC,Spring ORM,Spring JMS等等
Web调用与远程调用,Spring Web,WebSocket,MVC等等
面向切面编程,包括Spring AOP,Spring Aspect。。。。
而Spring Boot相当于是一个启动器,帮助你把以上Spring的各种模块组合起来并简化了你的配置。你不需要关心这么多Spring组件之间的各种依赖问题,帮你自动配置,帮你解决各组件之间要结合在一起会面临的一些问题。
该答案已被忽略,原因:
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:spring boot有必要学吗?【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:669,261贴子:
spring boot有必要学吗?收藏
要学的东西太多了,计算机网络,算法导论,zookeeper,多线程,netty,java虚拟机什么的都没学,想尽量节约时间
2017java学习来上市公司博为峰学java,入学即签就业协议,不就业不收费,查看java课程!java好学吗?java课程来博为峰学,java工程师就业年薪十几万!
这些东西学完工作用上才能理解深刻,然而工作用什么一般新手控制不了,只能说多学没坏处吧。
𤎱玩 采彡 的吧友进 不吹不黑 只要不贪心每天稳定赚七八百 或许你玩 采彡 输钱只是你的方法不对 进来看看玩法就知道ℚℚ君&#3
未来的趋势
这些东西是区分初级程序员个中级程序员的
登录百度帐号推荐应用}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信