简介
Spring Boot来简化SPring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别应用
背景:
J2EE笨重的开发、繁多的配置、低下的开发效率、发杂的部署流程、第三方技术集成难度发
解决:
"Spring全家桶时代" SPring Boot——>J2EE一站式解决方案 Spring Cloud——>分布式整体解决方案(自己的话就是:简化Spring应用开发的一个框架,整个Spring技术栈的一个大整合,J2EE开发的一站式解决方案)
优点:
- 快速创建独立运行的Spring项目以及主流框架集成
- 使用嵌入式的Servlet容器,应用无需打成WAR包
- starters自动依赖与版本控制
- 大量的自动配置,简化开发,也可以修改默认值
- 无需配置XML,无代码生成,开箱即用
- 准备生产环境的运行时应用监控
- 与云计算的天然集成
微服务
2014,martin fowler 微服务:架构风格
一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;
每一个功能元素最终都是一个可独立替换和独立升级软件的单元
环境约束:
- jdk1.8:Spring Boot 1.7及以上:java version "1.8.0_162"
- maven3.x:maven 3.3以上版本:Apache Maven 3.5.4
- IntellijlDEA2018:IntelliJ IDEA 2018.2、STS
- SpringBoot 1.5.9.ReLEASE:2.1.0;
- 统一环境;
1.MAVEN设置:
给maven的settings.xml配置文件的profiles标签添加
<profiles> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> </profiles>
2.IDEA示例
1.Spring Boot HelloWord
2.导入依赖
<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>
3.编写一个主程序:启动Spring Boot应用
/** * @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 */ @SpringBootApplication public class HelloWorLdMainApplication { public static void main(String[] args) { //Spring应用启动起来 SpringApplication.run(HelloWorLdMainApplication.class,args); }
4.编写相关的Cotroller、Service
@Controller public class HelloController { @ResponseBody @RequestMapping("/hello") public String hello(){ return "Hello World"; } }
5.运行主程序测试
6.简化部署
<!--这个插件,可以将应用打包成一个可执行的jar包;--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
点击右边的Maven Project-package将这个应用打成jar
通过cmd直接使用java-jar的命令进行执行;
完成效果