springboot 试用笔记
来源:互联网 发布:金税盘开票软件最新版 编辑:程序博客网 时间:2024/04/19 22:34
spring boot 试用笔记
起源
在2013年的SpringOne 2GX会议期间推出的,Spring Boot的项目负责人在twitter中发布的演示视频中,程序员用了不到十分钟时间,就搭建起了一个基于Spring的web程序,而且在本地运行,这个特性使它受到很大关注。
感受
我近期刚好搭建修改了一个基于spring应用的代码,刚开始这个应用使用了xml的配置,我逐步加入springmvc、logback、ibatis&&datasource、jetty-maven-plugin这些依赖,而且改为基于annotation的配置,整个骨架从无到有、调通运行成功起来大概用了1天的时间。之后迁移到纯java config的方式(移除web.xml、spring config xml)用了1个小时。再然后看到spring-boot&&spring-loaded,修改代码,调试通过大概用了30分钟。
最让我感觉惊艳的地方在于,基于spring-boot搭建应用就像使用play-framework、ror搭建应用一样简单,按需启用特性,初始阶段不需要太多的配置:一个pom.xml就足以,而且开发人员基本上不用考虑不同jar之间的版本依赖,例如logback && slf4j、spring && aspectj。这样能够很快从无到有搭建一个web应用。
spring-boot 自带tomcat/jetty 容器,在开发调试的时候根本不需要mvn compile package这些流程,配合maven插件直接在web执行 mvn spring-boot:run就可以了。
spring-boot的应用发布为war文件,在第三方容器执行。也可以使用java应用方式来standlone启动。通吃神马paas、云环境
spring-boot 和 springframework 关系如下:
user—-> spring-boot —-> springframework
使用
JDK6 建议使用:spring-boot 1.1.12.release版本(避免版本过高部分依赖的jar是基于jdk7生成的)&& maven 3+
JDK7 那就用最新版本的
建议参考文章:
- 官方文档:http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
- 对应的中文版:http://qbgbook.gitbooks.io/spring-boot-reference-guide-zh/content/
- 插件官方文档:http://docs.spring.io/spring-boot/docs/current/maven-plugin/
- IBM的示例文档:http://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/
需要注意
- 1 官方推荐我们使用spring-boot-starter-parent作为POM依赖的parent,spring-boot-starter-parent包含了以下信息:
- 默认编译级别为Java 1.6
- 源码编码为UTF-8
- 一个依赖管理节点,允许你省略普通依赖的 标签,继承自 spring-boot-dependencies POM。
- 合适的资源过滤
- 合适的插件配置(exec插件,surefire,Git commit ID,shade)
- 针对properties 和 application.yml 的资源过滤
- 2 加入spring-loaded maven插件,启用debug,如果说spring-boot开启搭建应用的快感,那么spring-loaded就是让java coder体验php这些脚本语言coding的快感 (≖ ‿ ≖)✧
代码配置很简单:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"--> <jvmArguments> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 </jvmArguments> </configuration> <dependencies> <!-- spring hot reload--> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.4.RELEASE</version> </dependency> </dependencies> </plugin>
- 3 打包war工程,spring boot应用默认是打包jar,如果改为war应用,需要修改package类型:
<packaging>war</packaging>
,并且实现SpringBootServletInitializer类,
@Configuration @EnableAutoConfiguration @ComponentScan("com.xxoo")public class Application extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); }public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); }}
稍等,为嘛没有用@SpringBootApplication。。。因为这个类是在1.2.x版本中才出现的
详情参考: 《74.1 创建一个可部署的war文件》 这个章节
- 4 还有一些生产环境的监控支持,详情参考:第5章,《Spring Boot执行器:Production-ready特性》
- springboot 试用笔记
- SpringBoot笔记
- SpringBoot笔记
- springBoot笔记
- SpringBoot笔记
- springboot笔记
- springboot 笔记
- SpringBoot笔记
- Springboot 笔记
- XmlHttp试用笔记
- XmlHttp试用笔记
- dmd试用笔记
- Ubuntu试用笔记
- scrum试用笔记
- graphlab试用笔记
- Silktest试用笔记
- Eclipse RAP 试用笔记
- jetbrain kotlin试用笔记
- android学习笔记(18)数据库sqlite初步
- Http协议详解2
- POJ 1860 Currency Exchange
- Python使用C语言生成的库
- CocoaPods升级
- springboot 试用笔记
- hdu 5001 Walk(概率dp+搜索,矩阵快速幂)
- 【算法】九大排序算法总结
- 数组中未出现的最小正整数
- MATLAB中cell函数
- STC单片机使用RS485下载程序方法
- android存储方式之文件存储
- 面试编程加数据库
- Runtime.getRuntime().exec()进程阻塞问题