您的位置:首页 > 编程语言 > Java开发

使用Gradle构建SpringBoot工程系列:第一篇:Gradle及SpringBoot简介

2017-06-08 01:14 746 查看
本篇是 使用Gradle 构建Spring Boot工程系列 的第一篇文章,接下来的一段时间里,将陆续更新本系列的其他文章,记录本人学习使用Gradle构建Spring Boot工程的过程、技术要点以及在过程中遇到的各种问题,欢迎广大程序猿共同关注学习,也欢迎大家灌水拍砖,提出自己的宝贵意见,知识在交流中碰撞,技术在交流中提升!

为什么应该选择 Gradle:

Gradle的座右铭“让不可能成为可能,让可能变得简单,让简单变得优雅”(适当引用 Moshe feldenkrais )

如果你是一个开发者,那么自动化项目就是你日常开发的一部分。难道你就不想把构建代码看作和其他软件代码一样,让它能够被扩展、测试和维护吗?让我们把软件工程搬回到构建中。 Gradle构建脚本是声明式的、可读的,并且清晰地表达它们的意图。用 Groovy而不是XML写代码,挥洒着 Gradle基于约定构建的哲理,大大地降低构建脚本的大小而且更易读;


为什么是Spring Boot :

Spring Boot可以说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一,也被人看作是:Java EE开发的颠覆者!同时,Spring Boot也是很好的微服务框架(具体可参见Spring Cloud 相关资料)

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot的目标不在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而简化对这些已有技术的使用。

Spring Boot学习要求

Maven/Gradle

Git

Docker

Docker Compose

学习spring boot最好要有Spring的使用基础,当然,spring boot本身也能让你快速的入门使用它,但如上面说的,一旦你碰到问题,没有spring使用基础,你会变得十分被动,加上文档很少,网上基本找不到bug资料,所以你懂的;然后就是要求你多少了解Maven或者grade配置,spring boot是基于这些实现项目依赖的管理;最后,说说IDE工具,这也是个人使用习惯,个人现在比较推荐大家学习使用下IntelliJ IDEA,虽然他和常用的Eclipse工具有所不同,但使用起来,它的索引机制,会让我们的开发体验相当顺畅(除了第一次打开建立索引非常耗时外)。

对于Git、Docker容器技术,其与Spring Boot的关联度非常的高,大部分的应用都是托管在GitHub上,然后,因为Spring Boot开发的应用大多服务与微服务架构,而这种架构通常依托与Docker实现快速部署和compose一键部署,所以了解和学习他们也变得非常有必要。至于后面要学习的Docker部署集群管理工具Mesos或者Kubernetes等,其实也是要掌握的,这里推荐coding(码市)网站,上面有很多技术博客讲解实际开发者使用体验和技巧。

考虑这么国外的资源,国内下载时好时慢,所以推荐修改配置指向国内资源,如Maven库可以用阿里云的国内仓库,直接在settings.xml中的标签中追加一下配置:

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>


,还有docker的官方镜像仓库也建议配置为国内镜像加速器:

其中阿里云的镜像地址为:

https://jxus37ad.mirror.aliyuncs.com

Spring Boot的特性

1)快速构建独立Spring应用程序

2)嵌入式Tomcat,Jetty容器,无需部署WAR包

3)简化Maven及Gradle配置

4)尽可能的自动化配置Spring,无代码生成和xml配置

5)直接植入产品环境下的实用功能,比如度量指标、健康检查及扩展配置等

6)对主流开发框架和工具链做无配置集成

Spring Boot优缺点

优点:

1)解决配置繁琐的问题,最大化的实现convention over configuration(约定大于配置);

2)springboot 要解决的问题, 精简配置是一方面, 另外一方面是非常方便的让spring生态圈和其他工具链整合(比如redis, email, elecsearch)

3)有Pivotal和Netflix这两个干爹罩着, 个人认为SpringBoot(由Pivotal团队提供)前途一片光明(国内的一些大厂其实早就再用了)

缺点:

1)因为刚出不久,文档略少,加上对Spring Boot的auto configuration loading等机制的封装, 给人感觉入门容易,但是如果没有完整学习spring的体系,碰到问题就一脸懵逼。据我所知,很多玩spring boot的人连怎么打开底层包的log都不知道,怎么可能能发现问题呢?比如很多人会碰到启动时不知道框架哪里抽风,会导致系统无法启动,报的错都很神奇,搜完百度和谷歌和stackflow都没解决方案。(后来有人说@DependsOn注解就能搞定,没试过不清楚行不行);

2)版本迭代速度太快(最近太火了), 一些模块改动很大, 比如 springboot-test的1.3.5 vs 1.4

最后

在接下来的文章中,我们将按照:

结构复杂的单一系统 > 微服务 > Docker化 > 自动化,

的思路,逐步深入的讲解借助gradle构建Spring Boot项目的演进过程,并记录整个过程所遇到的各种疑难问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Gradle springboot
相关文章推荐