1 简介
1.1 SpringBoot是什么?
- SpringBoot来简化Spring的应用开发,约定大于配置,去繁就简,just run就能创建一个独立的,产品级别的应用。
1.2 为什么要出现SpringBoot
- J2EE笨重的开发
- 繁多的配置
- 低下的开发效率
- 复杂的部署流程
- 第三方技术集成难度大
1.3 SpringBoot能干什么?
- “Spring全家桶”时代
- “SpringBoot” -->J2EE一站式解决方案
- “SpringCloud”-->分布式整体解决方案
1.4 SpringBoot的好处
- 快速创建独立运行的Spring项目以及与主流框架集成
- 使用嵌入式的Servlet容器,应用无需打war包
- starters自动依赖和版本控制
- 大量的自动配置,简化开发,也可以修改默认值
- 无需配置XML,无代码生成,开箱即用
- 准生产环境的运行时应用监控
- 与云计算的天然集成
2 微服务
- 架构风格
- 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通
- 单体应用:
- 缺点:牵一发而动全身
- 微服务
2 SpringBoot的HelloWorld
2.1 环境约束
- JDK 1.8
- maven 3.x
- IDEA 2017
- Spring Boot 1.5.9.RELEASE
2.2 HelloWorld
- 示例:浏览器发送hello请求,服务器接受请求并处理,响应Hello World字符串
- 导入SpringBoot相关的依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
- 编写一个主程序(启动SpringBoot的应用)
package com.xuweiwei; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @SpringBootApplication 来标注一个主程序类,说明该程序是一个SpringBoot应用 */ @SpringBootApplication public class HelloWorldMainApplication { public static void main(String[] args) { // Spring应用启动起来 SpringApplication.run(HelloWorldMainApplication.class,args); } }
- 编写HelloWorldController.java
package com.xuweiwei.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloWorldController { @RequestMapping(value = "/hello") @ResponseBody public String hello(){ return "Hello World"; } }
- 简化部署
- 在pom.xml文件中添加如下的内容
<!-- 这个插件,可以将应用打包成一个可执行的jar包 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
-
- 然后通过命令执行 java -jar 此jar包的名称
3 Spring的原理分析