@RestController
@RequestMapping("/users")
public class UserController {/**
* 获取用户列表
*
* @return
*/
@GetMapping
public List<User>getUsers(){return null;}/*** 获取用户信息
*
* @param id
* @return
*/
@GetMapping("/{id}")
public User getUser(@PathVariable("id") Long id){return null;}/**
* 保存用户
*
* @param user
*/
@PostMapping
public User createUser(@RequestBody User user){return null;}/**
* 修改用户
*
* @param id
* @param user
*/
@PutMapping("/{id}")
public voidupdateUser(@PathVariable("id") Long id, @RequestBody User user){}/**
* 删除用户
*
* @param id
* @return
*/
@DeleteMapping("/{id}")
public voiddeleteUser(@PathVariable("id") Long id){}}
public interface UserRepository {/**
* 新增或者修改用户
*
* @param user
* @return
*/
User saveOrUpateUser(User user);/**
* 删除用户
*
* @param id
*/voiddeleteUser(Long id);/**
* 根据用户id获取用户
*
* @param id
* @return
*/
User getUserById(Long id);/**
* 获取所有用户的列表
*
* @return
*/
List<User>listUser();}UserRepository的实现类如下。
@Repository
public class UserRepositoryImpl implements UserRepository {
private static AtomicLong counter = new AtomicLong();
private final ConcurrentMap<Long, User> userMap = new ConcurrentHashMap<Long,
User>();
@Override
public User saveOrUpateUser(User user){
Long id = user.getId();if(id == null || id <=0){
id = counter.incrementAndGet();
user.setId(id);}
this.userMap.put(id, user);return user;}
@Override
public voiddeleteUser(Long id){
this.userMap.remove(id);}
@Override
public User getUserById(Long id){return this.userMap.get(id);}
@Override
public List<User>listUser(){return new ArrayList<User>(this.userMap.values());}}
@RestController
@RequestMapping("/users")
public class UserController {
@Autowiredprivate UserRepository userRepository;/**
* 获取用户列表
*
* @return
*/
@GetMapping
public List<User>getUsers(){return userRepository.listUser();}/**
* 获取用户信息
*
* @param id
* @return
*/
@GetMapping("/{id}")
public User getUser(@PathVariable("id") Long id){return userRepository.getUserById(id);}/**
* 保存用户
*
* @param user
*/
@PostMapping
public User createUser(@RequestBody User user){return userRepository.saveOrUpateUser(user);}/**
* 修改用户
*
* @param id
* @param user
*/
@PutMapping("/{id}")
public voidupdateUser(@PathVariable("id") Long id, @RequestBody User user){
User oldUser = this.getUser(id);if(oldUser != null){
user.setId(id);
userRepository.saveOrUpateUser(user);}}/**
* 删除用户
*
* @param id
* @return
*/
@DeleteMapping("/{id}")
public voiddeleteUser(@PathVariable("id") Long id){
userRepository.deleteUser(id);}}