SpringBoot简介和优势

自行百度......

目前https://gitee.com/chunanyong/springrain已经整体更新到了SpringBoot 2.0.1的最新版本,公司的项目也会逐渐替换.

SpringBoot的demo

访问http://start.spring.io/,创建一个web项目.从域名可以看出Spring团队对SpringBoot的重视.

把这个项目导入到Eclipse,main方法运行com.example.demo.DemoApplication,默认端口8080,默认路径/

SpingBoot核心说明

Spring Boot有四大神器,分别是auto-configuration.starters.cli.actuator.

auto-configuration:约定配置,取消配置文件,例如默认注册Spring MVC的MessageConverter.

starters:是对模块依赖的又一层封装.类似Linux的yum包管理,根据功能,自动加载依赖的包.比Maven原生功能更近一步.

cli:是一个命令行工具,可用于快速搭建基于Spring的原型.

actuator:监控应用运行状态.

以下参照springrain项目进行讲解.

3.1.pom.xml

SpringBoot主要是依赖starter进行模块依赖. 主要依赖是:

{width="4.427083333333333in" height="1.4791666666666667in"}

3.2.application.yml

yml格式目前比较流行,大家也可以学习以下,主要特点是对齐和空格.

application.yml是SpringBoot的入口配置,主要配置一些必须的数据库连接等.其他配置使用JavaConfig配置的方式.

3.3.启动类

[SpringBoot使用@SpringBootApplication标注一个启动类,也就是main方法入口,类如springrain的org.springrain.SpringrainApplication]{.ul}

这个类所在的包,就是默认扫描的根包

主要配置

依据Maven目录结构,配置文件都在src/main/resources下,JavaConfig配置类

在org.springrain.config包下,主配置是application.yml

4.1.配置文件

//根据注释讲解

application.yml SpringBoot主配置

banner.txt 启动banner内容

logback-spring.xml logback的配置文件

proguard.conf 混淆配置文件.

wechat.properties 微信的配置文件.特殊情况可以配置微信服务的域名.

4.2.Java配置类

//根据注释讲解

Spring的核心配置

CacheConfig.java缓存配置

DataSourceConfig.java 数据库配置

ShiroConfig.java shiro的权限配置

SpringMVCConfig.java MVC的配置

TransactionConfig.java事务配置,配合applicationContext-tx.xml

WeiXinConfig.java 微信的配置

导出war包运行

SpringBoot默认是使用jar文件运行,jar文件里包含了tomcat容器,比较简陋.实际生产环境一般是war包形式部署运行,Tomat需要升级维护和个性化定制,所以不能使用jar包形式运行.

5.1.修改pom

5.2.增加Servlet入口类

5.3.导出成war包

运行自定义的maven命令

运行maven的package 命令,并运行,打包文件会在target目录下

打包的文件以及命令记录

总结:

SpringBoot一定程度上简化了基础开发难度,做了很多约定,也因此带来了一些问题.

定制开发的难度提升,资料较少,目前最好的方式是翻官方文档.

依赖较多,出现冲突不好解决,例如自动引入了Log4j版本基于JDK9,造成混淆时无法读取jar文件,因为开发环境是基于JDK8的.

SpringBoot提倡的JavaConfig方式并不能完全替代XML,例如事务切面的aop:config标签,目前没有找到合适的JavaConfig替换方法.

优势是流行,官方主推,是JAVA微服务的项目基础,模块化更优秀,可无感添加模块支持,例如:actuator