文章目录
实体类
- 实体类
- dao
- service
- Controller层
- 测试
在com.tensquare.spit.pojo包下创建如下的实体类
package com.tensquare.spit.pojo;
import org.springframework.data.annotation.Id;
import java.io.Serializable;
import java.util.Date;
/**
* 类名称:Spit
* 类描述:吐槽模块的实体类
*
* @author: taohongchao
* 创建时间:2019/1/19 15:24
* Version 1.0
*/
public class Spit implements Serializable {
/**
* MongoDB的id,必须用_id来使用
*/
@Id
private String _id;
private String content;
private Date publishtime;
private String userid;
private String nickname;
private Integer visits;
private Integer thumbup;
private Integer share;
private Integer comment;
private String state;
private String parentid;
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getPublishtime() {
return publishtime;
}
public void setPublishtime(Date publishtime) {
this.publishtime = publishtime;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public Integer getVisits() {
return visits;
}
public void setVisits(Integer visits) {
this.visits = visits;
}
public Integer getThumbup() {
return thumbup;
}
public void setThumbup(Integer thumbup) {
this.thumbup = thumbup;
}
public Integer getShare() {
return share;
}
public void setShare(Integer share) {
this.share = share;
}
public Integer getComment() {
return comment;
}
public void setComment(Integer comment) {
this.comment = comment;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getParentid() {
return parentid;
}
public void setParentid(String parentid) {
this.parentid = parentid;
}
}
dao
在com.tensquare.spit.dao 包下,创建如下的dao . 继承MongoRepository
package com.tensquare.spit.dao;
import com.tensquare.spit.pojo.Spit;
import org.springframework.data.mongodb.repository.MongoRepository;
/**
* 类名称:SpitDao
* 类描述:吐槽微服务的dao
*
* @author: taohongchao
* 创建时间:2019/1/19 15:30
* Version 1.0
*/
public interface SpitDao extends MongoRepository {
}
service
在com.tensquare.spit.service包下进行service层的编写
package com.tensquare.spit.service;
import com.tensquare.spit.dao.SpitDao;
import com.tensquare.spit.pojo.Spit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import util.IdWorker;
import java.util.List;
/**
* 类名称:SpitService
* 类描述: 吐槽微服务的service层
*
* @author: taohongchao
* 创建时间:2019/1/19 15:34
* Version 1.0
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SpitService {
@Autowired
private SpitDao spitDao;
@Autowired
private IdWorker idWorker;
public List findAll(){
return spitDao.findAll();
}
public Spit findById(String id) {
return spitDao.findById(id).get();
}
/**
* 方法名: saveSpit
* 方法描述: 新增吐槽,并用分布式id生成器
* 修改日期: 2019/1/19 15:42
* @param spit
* @return void
* @author taohongchao
* @throws
*/
public void saveSpit(Spit spit) {
spit.set_id(idWorker.nextId()+"");
spitDao.save(spit);
}
public void update(Spit spit) {
spitDao.save(spit);
}
public void deleteSpitById(String id) {
spitDao.deleteById(id);
}
}
Controller层
在com.tensquare.spit.controller包下进行controller层的编写 需要注意的是如果接收的是json对象数据,后台用pojo接收的话, 必须得加上@RequestBody
注解,否则封装不上数据
package com.tensquare.spit.controller;
import com.tensquare.spit.pojo.Spit;
import com.tensquare.spit.service.SpitService;
import entity.Result;
import entity.StatusCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
/**
* 类名称:SpitController
* 类描述:吐槽模块的controller层
*
* @author: taohongchao
* 创建时间:2019/1/19 15:49
* Version 1.0
*/
@RestController
@CrossOrigin
@RequestMapping("/spit")
public class SpitController {
@Autowired
private SpitService spitService;
/**
* 方法名: findAll
* 方法描述: 查询所有数据
* 修改日期: 2019/1/19 15:56
* @param
* @return entity.Result
* @author taohongchao
* @throws
*/
@RequestMapping(method = RequestMethod.GET)
public Result findAll(){
return new Result(true, StatusCode.OK, "查询成功", spitService.findAll());
}
/**
* 方法名: findById
* 方法描述: 通过id查询吐槽信息
* 修改日期: 2019/1/19 16:02
* @param spitId
* @return entity.Result
* @author taohongchao
* @throws
*/
@RequestMapping(value = "/{spitId}",method = RequestMethod.GET)
public Result findById(@PathVariable String spitId){
return new Result(true, StatusCode.OK, "查询成功", spitService.findById(spitId));
}
@RequestMapping(method = RequestMethod.POST)
public Result save(@RequestBody Spit spit) {
spitService.saveSpit(spit);
return new Result(true, StatusCode.OK, "保存成功");
}
@RequestMapping(value = "/{spitId}",method = RequestMethod.PUT)
public Result update(@RequestBody Spit spit,@PathVariable String spitId) {
spit.set_id(spitId);
spitService.update(spit);
return new Result(true, StatusCode.OK, "修改成功");
}
@RequestMapping(value = "/{spitId}",method = RequestMethod.DELETE)
public Result delete(@PathVariable String spitId) {
spitService.deleteSpitById(spitId);
return new Result(true, StatusCode.OK, "删除成功");
}
}
测试
在十次方的api中,可以对上面写的接口,进行增删改查测试操作.