目录
Spring历史
- 2012年10月,Mike Youngstrom在Spring jira中创建了一个功能需求,要求在Spring框架中支持无容器Web应用程序体系结构。他建议通过main方法引导的Spring容器内配置Web容器服务。
- 这一需求促成了2013年初开始的Spring Boot项目的开发。2014年4月,Spring Boot 1.0.0发布。从那以后,一些Spring Boot小版本开始出现。
- Spring Boot 1.1(2014年6月):改进的模板支持,gemfire支持,elasticsearch和apache solr的自动配置。
- Spring boot 1.2(2015年3月):升级到servlet 3.1/tomcat 8/jetty 9和spring 4.1,支持banner/jms /SpringBoot Application注释。
- Spring boot 1.3(2016年12月):升级到spring4.2,新的spring-boot-devtools,缓存技术的自动配置(ehcache,hazelcast,redis,guava和infinispan)以及完全可执行的jar支持。
- Spring boot 1.4(2017年1月):升级到spring 4.3,couchbase/neo4j支持,启动失败分析和RestTemplateBuilder。
- Spring boot 1.5(2017年2月):支持kafka /ldap,第三方库升级,放弃对CRaSH支持和执行器日志终端用以动态修改应用程序日志级别。
SpringBoot与以往Spring的区别
- 开箱即用:Spring Boot提供了许多默认配置,使得你可以快速启动和运行一个Web应用程序。你不再需要手动配置大量的XML文件。
- 内嵌服务器:Spring Boot可以创建独立的Spring应用程序,并且有内置的服务器,如Tomcat、Jetty和Undertow,无需部署war文件。
- 自动配置:Spring Boot尽可能地自动配置你的Spring应用程序。它会根据你添加的依赖自动配置你的Spring应用。
- 生产就绪:Spring Boot提供了一些非功能性特性,如安全、度量、健康检查、外部化配置等。
SpringBoot开发环境
- 前置条件:安装IDEA,JDK,MySQL,Maven库,Navicat 15,Postman
- 创建SpringBoot项目
- 给IDEA安装插件
- 配置Maven库
- 配置MySQLl库
- 在Sping配置文件中配置Tomcat、Mysql、Redis、MongoDB
SpringBoot项目新建及编译运行
或
-
使用postman对后端接口进行测试
下面是一段简易代码,提供了对姓名与年龄的储存与修改
(注意:@DeleteMapping(),括号中内容与其他注解内容不同)
package com.droplet.hellospringboot.controller;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@RestController
public class Hellocontroller {
// 存储姓名和年龄的HashMap
private static HashMap<String,Integer> nameAges = new HashMap<>();
@GetMapping("/hello")
public String hello(){
//输出HashMap中内容
return "Hello SpringBoot"+ nameAges.toString();
}
@PostMapping("/hello")
public String helloPost(String name, int age){
// 将姓名和年龄添加到HashMap中
nameAges.put(name,age);
return "add name:"+name+",age="+age;
}
@PutMapping("/hello")
public String helloPut(String name, int age){
// 更新HashMap中指定姓名的年龄
nameAges.replace(name,age);
return "update name:"+name+",age="+age;
}
@DeleteMapping("/hello/{name}")
public String helloDel(@PathVariable String name){
// 从HashMap中删除指定姓名的记录
nameAges.remove(name);
return "delete name:"+name;
}
}
HTTP GET测试
实际上的功能为显示姓名与年龄(即显示HashMap中的内容)
HTTP POST测试
实际上的功能为添加姓名与年龄(即添加内容到HashMap中)
再次使用HTTP GET输出姓名与年龄
HTTP PUT测试
实际上的功能为根据姓名来修改对应的年龄(即根据HashMap中name来修改age值)
再次使用HTTP GET输出姓名与年龄
HTTP DELETE测试
通过姓名来删除姓名与对应年龄记录(即根据HashMap中name来删除对应name值与age值)
再次使用HTTP GET输出姓名与年龄