生产者部分:
实体类:
@Data
@Document
public class Groups implements Serializable {
@Id
private String gid;
private String gname;
}
@Document
@Data
public class User implements Serializable {
@Id //mongo自动创建id
private String id;
@Indexed(unique = true)//唯一
private String username;
private Integer sex;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
@DBRef //多对一
private Groups groups;
}
DAO:这里分别采用MongoRespository和MongoTemplate
public interface UserDao extends MongoRepository<User,String> {
}
public interface IGroupsDao {
void save(Groups groups);
List<Groups> groups();
Groups findById(String gid);
}
@Repository
public class GroupsDao implements IGroupsDao {
@Resource
private MongoTemplate mongoTemplate;
@Override
public void save(Groups groups) {
this.mongoTemplate.save(groups);
}
@Override
public List<Groups> groups() {
return this.mongoTemplate.findAll(Groups.class);
}
@Override
public Groups findById(String gid) {
return this.mongoTemplate.findById(gid,Groups.class);
}
}
@Repository
public class GroupsDao implements IGroupsDao {
@Resource
private MongoTemplate mongoTemplate;
@Override
public void save(Groups groups) {
this.mongoTemplate.save(groups);
}
@Override
public List<Groups> groups() {
return this.mongoTemplate.findAll(Groups.class);
}
@Override
public Groups findById(String gid) {
return this.mongoTemplate.findById(gid,Groups.class);
}
}
业务层:
@Transactional
public interface IUserService {
//保存:添加或修改
void save(User user);
//列表
List<User> users();
//查询id
User findOne(String id);
//删除
void delete(String id);
List<Groups> groups();
Groups findById(String gid);
}
@Service
public class UserService implements IUserService{
@Resource
private UserDao userDao;
@Resource
private IGroupsDao groupsDao;
@Override
public void save(User user) {
this.userDao.save(user);
}
@Override
public List<User> users() {
return this.userDao.findAll();
}
@Override
public User findOne(String id) {
return this.userDao.findById(id).get();
}
@Override
public void delete(String id) {
this.userDao.deleteById(id);
}
@Override
public List<Groups> groups() {
return this.groupsDao.groups();
}
@Override
public Groups findById(String gid) {
return this.groupsDao.findById(gid);
}
}
控制器:
@RestController
public class UserController {
@Resource
private IUserService userService;
@GetMapping("/users")
public List<User> users(){
return this.userService.users();
}
@GetMapping("/del/{id}")
public boolean del(@PathVariable("id")String id){
try {
this.userService.delete(id);
return true;
}catch (Exception e){
return false;
}
}
@PostMapping("/save")
public boolean save(@RequestBody User user){
System.out.println("...............>"+user);
try {
this.userService.save(user);
return true;
}catch (Exception e){
e.printStackTrace();
return false;
}
}
@GetMapping("/find/{id}")
public User findUser(@PathVariable("id")String id){
return this.userService.findOne(id);
}
@GetMapping("/groups")
public List<Groups> groups(){
return this.userService.groups();
}
@GetMapping("/findGroup/{gid}")
public Groups findGroup(@PathVariable("gid")String gid){
return this.userService.findById(gid);
}
}
消费者部分:
实体类:
@Data
public class Groups {
private String gid;
private String gname;
}
@Data
public class User implements Serializable {
private String id;
private String username;
private Integer sex;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
private Groups groups;
}
业务层:
@FeignClient("mongo-model")
public interface UserService {
@GetMapping("/users")
public List<User> users();
@PostMapping("/save")
boolean save(User user);
@GetMapping("/del/{id}")
public boolean del(@PathVariable("id")String id);
@GetMapping("/find/{id}")
public User findById(@PathVariable("id")String id);
@GetMapping("/groups")
public List<Groups> groups();
}
控制器:
@RestController
public class AjaxController {
@Resource
private UserService userService;
@GetMapping("/list")
public List<User> users(){
return this.userService.users();
}
@PostMapping("/add")
public boolean save(User user){
System.out.println("################...>"+user);
try {
this.userService.save(user);
return true;
}catch (Exception e){
e.printStackTrace();
return false;
}
}
@GetMapping("/delete/{id}")
public boolean del(@PathVariable("id")String id){
try{
this.userService.del(id);
return true;
}catch (Exception e){
e.printStackTrace();
return false;
}
}
@GetMapping("/show/{id}")
public Map<String,Object> findId(@PathVariable("id") String id){
User user= this.userService.findById(id);//要修改的用户对象
List<Groups> gs=this.userService.groups();//所有的组
Map<String,Object> map = new HashMap<String,Object>(10);
map.put("user",user);
map.put("gs",gs);
return map;
}
@GetMapping("/gs")
public List<Groups> gs(){
return this.userService.groups();
}
}
@Controller
public class UserController {
@GetMapping("/") //转到到列表页面
public String tolist(){
return "list";
}
@GetMapping("/add")//添加请求
public String toadd(){
return "add";
}
@GetMapping("/find")
public String toupdate(){
return "update";
}
}
启动类:
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class MongoWebApplication {
public static void main(String[] args) {
SpringApplication.run(MongoWebApplication.class, args);
}
}