IDEA的Spring Boot应用

时间:2021-10-30 09:18:34
一 简单应用
1 编写REST程序
2 运行Spring Boot应用
3 使用HTTP请求工具:PostMan
二 场景说明
1 定义用户模型,包括属性:用户ID和名称
2 客户端发送POST请求,创建用户(Web MVC)
3 客户端发送GET请求,获取所有用户(Web Flux)
三 postman工具介绍
下载地址
四 构建过程
2 使用网页的Spring Initializer快速创建Spring Boot项目
IDEA的Spring Boot应用
3 下载并解压
下载得到first-app-demo.zip
解压为first-app-demo
4 导入新项目
关闭所有的项目后就可以导入新项目
IDEA的Spring Boot应用
IDEA的Spring Boot应用
IDEA的Spring Boot应用
IDEA的Spring Boot应用
IDEA的Spring Boot应用
IDEA的Spring Boot应用
IDEA的Spring Boot应用
5 生成项目结构图如下:
IDEA的Spring Boot应用
五 代码
1 domain层
package com.imooc.firstappdemo.domain;

public class User {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}
2 repository层
package com.imooc.firstappdemo.repository;

import com.imooc.firstappdemo.domain.User;
import org.springframework.stereotype.Repository;

import java.util.Collection;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicInteger;

@Repository
public class UserRepository {
    private final ConcurrentMap<Integer,User> repository = new ConcurrentHashMap<>();

    private final static AtomicInteger idGenerator= new AtomicInteger();

    public boolean save(User user){
        //ID从1开始
        Integer id=idGenerator.incrementAndGet();
        user.setId(id);
        return repository.put(id,user)==null;
    }
}
3 controller层
package com.imooc.firstappdemo.controller;

import com.imooc.firstappdemo.domain.User;
import com.imooc.firstappdemo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    private final UserRepository userRepository ;

    @Autowired
    public UserController(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @PostMapping("/person/save")
    public User save(@RequestParam String name){
        User user=new User();
        user.setName(name);
        if(userRepository.save(user)){
           System.out.printf("用户对象:%s 保存成功 \n",user);
        }

        return user;
    }
}
五 运行
IDEA的Spring Boot应用
六 测试结果
IDEA的Spring Boot应用
七 参考