springboot综合项目练习五cms集成spring data mongodb

mongodb入门:

一. 项目数据库:
cms项目使用了mongodb作为数据库,这里主要演示实现springboot整合spring mongodb完成基本的数据库增删改查操作,当然也可以使用mysql做为cms项目数据库,就不多做累赘.

关于spring data mongodb
类似于 Spring Data JPA,里面整合了mongodb常用操作方法,新建的dao接口只需要继承MongoRepository类并指定实体类和id类型就可以.

二. 实现目标

  1. 完成mongodb开发环境的搭建和入门
  2. 完成springboot整合mongodb并初步实现初步测试

三. 具体步骤
1.在mongodb数据库创建一个sc_cms库,导入数据到mogodb数据库
我把数据文件上传到项目中了,小伙伴们可以通过git下载
springboot综合项目练习五cms集成spring data mongodb_第1张图片
成功后数据库目录如下
springboot综合项目练习五cms集成spring data mongodb_第2张图片

2.打开model工程,新建如下数据库实体类
springboot综合项目练习五cms集成spring data mongodb_第3张图片
每个实体类上要添加注解实现与数据库映射

@Document(collection = "数据库表名")

例如cmsPage

@Data
@ToString
@Document(collection = "cms_page")
public class CmsPage {
    /**
     * 页面名称、别名、访问地址、类型(静态/动态)、页面模版、状态
     */
    //站点ID
    private String siteId;
    //页面ID
    @Id
    private String pageId;
    //页面名称
    private String pageName;
    //别名
    private String pageAliase;
    //访问地址
    private String pageWebPath;
    //参数
    private String pageParameter;
    //物理路径
    private String pagePhysicalPath;
    //类型(静态/动态)
    private String pageType;
    //页面模版
    private String pageTemplate;
    //页面静态化内容
    private String pageHtml;
    //状态
    private String pageStatus;
    //创建时间
    private Date pageCreateTime;
    //模版id
    private String templateId;
    //参数列表
    private List pageParams;
    //模版文件Id
//    private String templateFileId;
    //静态文件Id
    private String htmlFileId;
    //数据Url
    private String dataUrl;

}

3.打开cms项目,后面几个步骤都是在cms创建
cms目录结构如下:

1)pom导入坐标


    org.springframework.boot
    spring-boot-starter-data-mongodb

2)application.yml配置mongodb连接

server:
  port: 31001
spring:
  application:
    name: sc-multipl-manage-cms
  data:
    mongodb:
      uri:  mongodb://localhost:27017
      database: sc_cms

注:这里url使用的是本地连接,如果是远程连接或需要账密连接,url需要添加账号和密码信息,如下
mongodb://root:123@localhost:27017
3)在dao层新建Repository类,MongoDBRespository提供了现成数据库方法,继承后可以直接调用,例如

public interface CmsPageRepository extends MongoRepository{
}

4)新建service和实现类,这里调用了Repository类原生方法查询

@Service
public class CmsPageServiceImpl implements CmsPageService {

    @Autowired
    CmsPageRepository cmsPageRepository;

    @Override
    public SCResponsResult findAll() {
        Pageable pageable = PageRequest.of(0,10);
        //调用Repository方法获得Page返回结果
        Page pageList = cmsPageRepository.findAll(pageable);
        ListResult listResult = new ListResult();
        //数据总记录数
        listResult.setTotal(pageList.getTotalElements());
        //数据列表
        listResult.setList(pageList.getContent());
        SCResponsResult result = new SCResponsResult(ResultCodeEnum.SUCCESS,listResult);
        return result;
    }
}

5)在controller编写测试方法

//测试地址 http://localhost:31001/testMogoDB
@RequestMapping("testMogoDB")
public Object testMongoDB(){
    return cmsPageService.findAll();
}

6)最后,作为分布式项目,记得要在application启动类添加扫描范围将其它项目的文件也扫描进来

@SpringBootApplication
@EntityScan("com.chen.domain")                          //扫描实体类
@ComponentScan(basePackages = {"com.chen.api"})         //扫描接口
@ComponentScan(basePackages = {"com.chen.manage_cms"})  //扫描本项目下的所有类
public class ManageCmsApplication {
    public static void main(String[] args) {
        SpringApplication.run(ManageCmsApplication.class,args);
    }
}

在application.java启动类启动项目,访问:
http://localhost:31001/testMogoDB 测试是否成功

你可能感兴趣的:(springboot综合项目练习五cms集成spring data mongodb)