SpringBoot开荒之路
之前很长一段时间一直在关注SpringBoot框架的发展,但是没有真正的使用过。最近由于业务发展需要,公司一些项目需要快速迭代上线,所以采用了SpringBoot以及SpringCloud相关技术。在这里将详细描述项目搭建过程以及项目开发中遇到的问题。最后会讲项目的部署。
1、为什么要用SpringBoot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid applicationdevelopment)成为领导者。
多年以来,Spring IO平台饱受非议的一点就是大量的XML配置以及复杂的依赖管理。在去年的SpringOne 2GX会议上,Pivotal的CTO Adrian Colyer回应了这些批评,并且特别提到该平台将来的目标之一就是实现免XML配置的开发体验。Boot所实现的功能超出了这个任务的描述,开发人员不仅不再需要编写XML,而且在一些场景中甚至不需要编写繁琐的import语句。在对外公开的beta版本刚刚发布之时,Boot描述了如何使用该框架在140个字符内实现可运行的web应用,从而获得了极大的关注度,该样例发表在tweet上。
2、搭建一个简单的SpringBoot项目
SpringBoot提供了ClI安装以及直接依赖其start模块。本文采用第二种。我们使用Maven+SpringBoot依赖来构建。
首先。我们创建一个maven工程,工程结构如下:
目录结构是标准的maven结构的工程。接下来配置我们的pom文件。
主要包括parent和starter-web。parent会帮助我们引入SpringBoot的相关依赖。start-web回帮我们引入spring相关的依赖包。到此我们的配置已经完成。不需要spring.xml文件,不需要springmvc-servlet.xml文件,不需要web.xml文件,就是这么简单。
3、编写一个Controller
我们编写一个简单的controller。DemoController
4、编写启动类
上面我们完成了项目搭建以及一个简单的controller。接下来我们编写启动类启动该工程。Start类
start类我们用SpringBootApplication以及EnableAutoConfiguration进行注解。这样我们就会启动这个SpringBoot应用。启动完成以后我们访问http://localhost:8080/demo
至此我们的项目搭建完成。
5、怎么发布
因为项目我们是基于maven构建。所以首先利用maven命令进行打包
打包以后我们会发现项目中生成jar包。这种可执行的jar我们称为的“胖jar包(fat jar)”,这种jar包含了工程的所有依赖并且能够以可运行jar的方式执行。使用Maven打包Boot应用只需运行mvn package命令,与之类似,使用Gradle时,执行gradle build命令将会在构建的目标地址下生成可运行的jar。
我们使用java–jar命令就可以运行该jar包
6、怎么集成数据库
上面只是一个简单的例子。接下来我们尝试集成数据库。我们以集成mybatis为例。首先配置我们的依赖(本实例以Druid数据源)
配置我们的数据库连接配置文件application.properties。
SpringBoot应用的配置可以使用Java属性文件来进行定义,这个文件名为application.properties并且位于应用的classpath根目录下。不过,一种更好的方式是使用YAML配置,它提供了结构化以及嵌套的配置。在应用的运行时类路径之中包含snakeyaml之后,工程就可以在application.yml文件中直接定义配置了。Mybatis配置好如下
这里我配置了三个文件。分别是默认的配置文件、开发环境的配置文件、生产环境的配置文件。SpringBoot启动如果不指定任何环境参数的时候,默认加载的是application.yml的配置。如果指定环境参数,则加载application-{环境}.yml的配置文件。
# 测试环境:java -jar demo.jar--spring.profiles.active=test
# 生产环境:java -jar demo.jar --spring.profiles.active=prod
至此整个项目搭建完成,后续我们会将如何集成SpringCloud以及怎么使用docker部署