springboot2.0新特性
编程语言:Java8+(必须使用Java8及以上的版本才可使用)、Kotlin(刚接触并不了解)
底层框架:Spring Framework 5.0.x(springboot2.0底层使用spring框架5.0以上版本)
全新特性:Web Flux(一种新型的编程模型,对SpringMVC的一个补充,有待学习)
WebFlux优势
1、函数式编程:Java8 Lambda,Kotlin
2、响应式编程:Reactive Streams
3、异步编程:Servlet3.1或Async NIO
SpringBoot开发前准备
1、安装Java8的jdk并配置环境变量
2、安装maven进行依赖管理,maven需配置settings文件的相关配置,
配置本地仓库:<localRepository>E:\Program Files\maven-repository</localRepository>
配置国内的镜像仓库(这里选择阿里云):
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
3、IDE的安装可以选择eclipse或者IDEA(这里选择IDEA)
安装好IDEA后可以通过修改其配置文件将IDEA的配置从默认存放的C盘放到其他路径下,步骤如下
打开IDEA的安装目录下的bin目录,找到idea.properties文件并打开修改如下图的配置
第一个SpringBoot项目
准备好开发环境后登陆https://start.spring.io/ 通过官网方式创建第一个SpringBoot的项目
根据个人要求修改箭头所指处的配置项,点击下载并导入IDEA
1、添加domain包并创建一个User实体类,有ID和name两个属性并实现get和set方法,同时重写toString方法
2、创建repository包并创建UserRepository类对User对象进行保存的操作:
@Repository
public class UserRepository {
/**
* 采用内存型存储方式=》Map,这里使用高并发的ConcurrentMap
*/
private final ConcurrentMap<Integer, User> repository = new ConcurrentHashMap<>();
private static final AtomicInteger idGenerator = new AtomicInteger();
public boolean save(User user) {
Integer id = idGenerator.incrementAndGet();
user.setId(id);
return repository.put(id, user) == null;
}
}
3、创建controller包并创建UserController控制器类,实现与前端的交互
@RestController
public class UserController {
private final UserRepository repository;
/**
* 使用构造器注入的优势:注入属性不能修改; 可以提早的进行初始化
* @param repository
*/
@Autowired
public UserController(UserRepository repository) {
this.repository = repository;
}
@PostMapping("/person/save")
public User save(@RequestParam String name) {
User user = new User();
user.setName(name);
repository.save(user);
return user;
}
}
启动项目进行测试,发现使用WebFlux创建的项目运行状态为Netty进行运行而非Tomcat
使用postman进行测试模拟发送POST请求