1.什么是springboot
简单的说: spring boot就是整合了spring大家族衍生框架(Spring,SpringMVC...)各优点的一个新框架;
a)一种全新的编程规范,简化了框架的使用,去除Spring众多框架中所需的大量且繁琐的配置文件 --- "习惯优于配置";
b)敏捷开发Spring应用程序,专注于应用程序功能 -- 可独立运行(运行jar,内嵌Servlet容器);
2.Spring Boot 独特性
鉴于有很多误解,特区分下和我们常用用于有什么区别
- Spring Boot更多的是采用Java Config的方式,对Spring进行配置。
- 配置简单
- 基于注解,及config
- yml文件;
- 部署简单
- 一键启动
- java -jar standalone.jar
- 监控简单: springBoot-actuator
- 查看属性配置
- 线程工作状态
- 环境变量
- JVM性能指标
- RESTFul Path与服务类的映射关系
- ...
3.Spring Boot核心
- 自动配置 : 针对很多Spring应用程序常见功能,SpringBoot能自动提供相关配置;
以往,在任何的spring项目中,你都会找到Java配置或一大堆的XML配置文件,它们为应用程序开启了特定的特性和功能。看以下几个例子:
1. web.xml
2.jdbcTemplate
3.事务管理
在以上三个例子中,很多配置都是复杂并且模板化,这提高了我们开发的成本。而在springboot中这些都自动为我们做好了,让开发人员更加专注于业务需求的开发。
- 起步依赖: 告诉Spring Boot需要什么功能
- 命令行界面: SpringBoot可选特性,无需传统创建,快速搭建项目
- Actuator: 提供在运行时检视应用程序内部情况的能力
Actuator则要提供在运行时检视应用程序内部情况的能力。安装了Actuator就能窥探应用程序的内部情况了,包括如下细节:
- Spring应用程序上下文里配置的Bean
- Spring Boot的自动配置做的决策
- 应用程序取到的环境变量、系统属性、配置属性和命令行参数
- 应用程序里线程的当前状态
- 应用程序最近处理过的HTTP请求的追踪情况
- 各种和内存用量、垃圾回收、Web请求以及数据源用量相关的指标
Actuator通过Web端点和shell界面向外界提供信息。如果要借助shell界面,你可以打开SSH(Secure Shell),登入运行中的应用程序,发送指令查看它的情况。
- 内嵌容器: 可独立运行
- YML配置文件: 区别于传统Properties文件方式
传统项目中使用properties文件作为key-value的载体,但其缺点也是明显的。会重复的进行链式配置,而YML文件则避免了这个问题。
Properties文件方式
#Properties配置数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/config
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Yml文件方式
#YML配置数据库连接
Spring:
Datasource:
url: jdbc:mysql://localhost:3306/config
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
这里发现一个有意思的 springoot中文文档,也很详细了;
http://blog.geekidentity.com/spring/spring_boot_translation/