当前位置: 首页>数据库>正文

springboot整合security springboot整合mongodb

本篇博文主要讲述入使用springboot对MongoDB进行整合

这里我们需要先安装配置MongoDB。在官网下载会比较慢,(反正我是比较慢啦,不知道各位的了)所以我特意提供了一下我下载好的安装包,以及补丁,还有一个可视化工具。地址在下方,有需要的可以前往下载。

如果有不会的安装配置的可参考:MongoDB的安装配置

此处说明一下,因为每个人的电脑环境电脑系统不一致,可能配置可以适当的缩减,就拿我来说,我在公司安装好后需要打补丁才可以使用,但是我在家里自己的电脑上安装就可以直接使用,不需要补丁。请根据实际情况进行安装配置。

准备工作:

  • 安装MongoDB
  • jdk1.8+
  • Maven3.0+
  • idea

创建工程:

我们已经创建了许多次工程了,这里就不再赘述了,如果刚接触的新手朋友可以参考:springboot入门体验

引入相关的依赖,以下是我的完整依赖:

<?xml version="1.0" encoding="UTF-8"?>4.0.0com.wujie    springboot-mongodb    0.0.1-SNAPSHOTjarspringboot-mongodbDemo project for Spring Bootorg.springframework.boot        spring-boot-starter-parent        2.0.3.RELEASEUTF-8UTF-81.8org.springframework.boot            spring-boot-starter-data-mongodb        org.springframework.boot            spring-boot-starter-web        org.springframework.boot            spring-boot-starter-test            testorg.springframework.boot                spring-boot-maven-plugin




springboot整合security springboot整合mongodb,springboot整合security springboot整合mongodb_ide,第1张


需要加入spring-boot-starter-data-mongodb依赖。

接下来就是配置数据源:

spring:  data:    mongodb:      uri: mongodb://localhost:27017/mydbserver:  port: 80


springboot整合security springboot整合mongodb,springboot整合security springboot整合mongodb_spring_02,第2张


如果有安全认证的地址应该这样写:mongodb://name:pass@localhost:27017/mydb

不过我个人建议新接触的朋友们最后先不要进行安全认证。

定义一个实体:

public class Student {    /**     * id     */    @Id    private String id;    /**     * 姓名     */    private String name;    /**     * 性别     */    private String sex;    public Student(String name, String sex) {        this.name = name;        this.sex = sex;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    @Override    public String toString() {        return "Student{" +                "id='" + id + ''' +                ", name='" + name + ''' +                ", sex='" + sex + ''' +                '}';    }}


springboot整合security springboot整合mongodb,springboot整合security springboot整合mongodb_mongodb_03,第3张


新建dao层对数据操作:

写一个接口,继承MongoRepository,这个接口有了基本的CRUD的操作,当不能满足需求的时候,可以进行一些自定的方法,比如查询,findByName根据名字查询,findBySex,根据性别查询,在springboot中,我们只需要定义一个方法即可,springboot已经帮我们实现了。注意的是findByName需要严格的按照存入的MongoDB的字段对应。

public interface StudentRepository extends MongoRepository {    public Student findByName(String name);    public List findBySex(String sex);}


springboot整合security springboot整合mongodb,springboot整合security springboot整合mongodb_ide_04,第4张


新建service层:

public interface StudentService {    public Student add (Student student);    public UpdateResult update (Student student);    public void delete(String id);    public Student findByName(String name);    public List findBySex(String sex);}


springboot整合security springboot整合mongodb,springboot整合security springboot整合mongodb_mongodb_05,第5张


新建service层的实现类:

@Servicepublic class StudentServiceImpl implements StudentService {    @Autowired    private StudentRepository studentRepository;    @Autowired    private MongoTemplate mongoTemplate;    @Override    public Student add(Student student) {        Student student1 = studentRepository.save(student);        return student1;    }    @Override    public UpdateResult update(Student student) {        Query query = new Query();        Criteria criteria = new Criteria();        query.addCriteria(Criteria.where("_id").is(student.getId()));        String collectionsName = "student";        Update update = new Update();        update.set("_id",student.getId());        UpdateResult result = mongoTemplate.updateFirst(query, update, collectionsName);        return result;    }    @Override    public void delete(String id) {        studentRepository.deleteById(id);    }    @Override    public Student findByName(String name) {       return studentRepository.findByName(name);    }    @Override    public List findBySex(String sex) {        return studentRepository.findBySex(sex);    }}


springboot整合security springboot整合mongodb,springboot整合security springboot整合mongodb_springboot mongodb整合_06,第6张


新建controller:

@RestController@RequestMapping("student")public class StudentController {    @Autowired    private StudentService studentService;    @RequestMapping("add")    public Student add(Student student){        return  studentService.add(student);    }    @RequestMapping("update")    public UpdateResult update(Student student){        return studentService.update(student);    }    @RequestMapping("findByName")    public Student findByName(String name){        return studentService.findByName(name);    }    @RequestMapping("findBySex" )    public List findBySex(String sex){        return studentService.findBySex(sex);    }    @RequestMapping("delete")    public String delete(String id){        studentService.delete(id);        return "success";    }}


springboot整合security springboot整合mongodb,springboot整合security springboot整合mongodb_ide_07,第7张


此时,所有需要的类都已经完成,我们只需要启动SpringbootMongodbApplication的mian方法即可,访问http://localhost/student/add?name=test1123&sex=男

即可得到如下的结果:


springboot整合security springboot整合mongodb,springboot整合security springboot整合mongodb_mongodb_08,第8张


springboot整合security springboot整合mongodb,springboot整合security springboot整合mongodb_ide_09,第9张


以上的接口都已经经过测试。


https://www.xamrdz.com/database/69v1964156.html

相关文章: