title: 24.SpringBoot使用文档(springrain) CreateTime: 2019-07-11 00:00:24 UpdateTime: 2019-07-11 00:00:24 CategoryName: web --- --- title: "24.SpringBoot使用文档(springrain)" date: 2019-07-11T00:00:24+08:00 draft: false tags: ["web"] categories: ["web"] author: "springrain" --- **SpringBoot简介和优势** ------------------------ 自行百度...... 目前https://gitee.com/chunanyong/springrain已经整体更新到了SpringBoot 2.0.1的最新版本,公司的项目也会逐渐替换. **SpringBoot的demo** -------------------- 访问http://start.spring.io/,创建一个web项目.从域名可以看出Spring团队对SpringBoot的重视. ![](/public/24/document_image_rId9.jpeg) 把这个项目导入到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进行模块依赖. 主要依赖是: ![](/public/24/document_image_rId10.jpeg){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}](mailto:SpringBoot使用@SpringBootApplication标注一个启动类,也就是main方法入口,类如springrain的org.springrain.SpringrainApplication) 这个类所在的包,就是默认扫描的根包 ![](/public/24/document_image_rId12.jpeg) **主要配置** ------------ 依据Maven目录结构,配置文件都在src/main/resources下,JavaConfig配置类 在org.springrain.config包下,主配置是application.yml ![](/public/24/document_image_rId13.jpeg) ### **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** ![](/public/24/document_image_rId14.jpeg) ### **5.2.增加Servlet入口类** ![](/public/24/document_image_rId15.jpeg) ### **5.3.导出成war包** 运行自定义的maven命令 ![](/public/24/document_image_rId16.png) 运行maven的package 命令,并运行,打包文件会在target目录下 ![](/public/24/document_image_rId17.jpeg) 打包的文件以及命令记录 ![](/public/24/document_image_rId18.png) **总结:** --------- SpringBoot一定程度上简化了基础开发难度,做了很多约定,也因此带来了一些问题. 定制开发的难度提升,资料较少,目前最好的方式是翻官方文档. 依赖较多,出现冲突不好解决,例如自动引入了Log4j版本基于JDK9,造成混淆时无法读取jar文件,因为开发环境是基于JDK8的. SpringBoot提倡的JavaConfig方式并不能完全替代XML,例如事务切面的标签,目前没有找到合适的JavaConfig替换方法. 优势是流行,官方主推,是JAVA微服务的项目基础,模块化更优秀,可无感添加模块支持,例如:actuator