至于MongoDB网上有很多相关的资料,所以在这里不进行过多的介绍,我们在这里主要是介绍下如何将mongodb与spring boot结合使用。本节大纲:
(1) 准备工作;
(2) 新建一个maven java project;
(3) 引入相关依赖;
(4) 编写测试代码;
(5) 配置文件;
(6) 使用MongoTemplate进行操作;
接下来一起看看每个步骤都是怎么操作的吧。
(1) 准备工作;
既然需要使用mongodb,那么很明显就需要安装mongodb 服务。这个网络上有很多相关的资料,自行进行操作。
下载安装完,把mongodb服务启动起来以备之后进行操作使用。
(2) 新建一个maven java project;
在这里我们新建一个spring-boot-mongodb项目。
(3) 引入相关依赖;
引入相关依赖,在这里最主要的是mongodb的依赖,其它的依赖就是基本的了,具体看如下pom.xml文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.kfit</groupId>
<artifactId>spring-boot-mongodb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-boot-mongodb</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- jdk版本号,angel在这里使用1.8,大家修改为大家本地配置的jdk版本号即可 -->
<java.version>1.8</java.version>
</properties>
<!--
spring boot 父节点依赖,
引入这个之后相关的引入就不需要添加version配置,
spring boot会自动选择最合适的版本进行添加。
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<!-- spring boot web支持:mvc,aop... -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 增加mongodb支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
</project>
(4) 编写测试代码;
在这里我们需要编写一个简单的例子进行测试下,我们需要创建一个DemoInfo实体类,需要创建一个操作MongoDB的repository类,再者就是一个控制类DemoController。具体看如下代码:
实体类代码DemoInfo:com.kfit.demo.DemoInfo ,具体代码如下:
package com.kfit.demo;
import org.springframework.data.annotation.Id;
/**
* 实体类.
* @author Angel --守护天使
* @version v.0.1
* @date 2016年8月18日下午3:15:39
*/
public class DemoInfo {
//id属性是给mongodb用的,用@Id注解修饰
@Id
private String id;
private String name;
privateintage;
public String getName() {
returnname;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(intage) {
this.age = age;
}
@Override
public String toString() {
return "DemoInfo [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
这个类很简单,跟普通的实体类相比就是多了一个id的注解,这给Mongodb使用的。
接下来编写一个操作mongodb的repository代码,它继承MongoRepository接口;MongoRepository接口包含了常用的CRUD操作,例如:save,insert,fillAll等。我们也可以定义我们自己的操作接口,具体看如下代码:
com.kfit.demo.DemoInfoRepository :
package com.kfit.demo;
import org.springframework.data.mongodb.repository.MongoRepository;
/**
* 继承自MongoRepository接口,MongoRepository接口包含了常用的CRUD操作,
* 例如:save、insert、findall等等。我们可以定义自己的查找接口,
* 例如根据demoInfo的name搜索,具体的DemoInfoRepository接口代码如下:
* @author Angel --守护天使
* @version v.0.1
* @date 2016年8月18日下午3:15:49
*/
public interface DemoInfoRepository extends MongoRepository<DemoInfo, String> {
DemoInfo findByName(String name);
}
接下来就是访问控制类,这个类中很简单,都是最基本的代码,看如下:
package com.kfit.demo;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* @author Angel --守护天使
* @version v.0.1
* @date 2016年8月18日下午8:49:35
*/
@RestController
public class DemoController {
@Autowired
private DemoInfoRepository demoInfoRepository;
@RequestMapping("save")
public String save(){
DemoInfo demoInfo = new DemoInfo();
demoInfo.setName("张三");
demoInfo.setAge(20);
demoInfoRepository.save(demoInfo);
demoInfo = new DemoInfo();
demoInfo.setName("李四");
demoInfo.setAge(30);
demoInfoRepository.save(demoInfo);
return "ok";
}
@RequestMapping("find")
public List<DemoInfo> find(){
return demoInfoRepository.findAll();
}
@RequestMapping("findByName")
public DemoInfo findByName(){
return demoInfoRepository.findByName("张三");
}
}
最后编写App.java启动类,启动应用程序:
com.kfit.App:
package com.kfit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
*
* @author Angel --守护天使
* @version v.0.1
* @date 2016年8月18日下午3:15:28
*/
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
好了到这里,简单的一个程序就可以运行起来看看了,运行起来之后,依次访问如下地址:
http://127.0.0.0.1:8080/save :保存两条数据;
http://127.0.0.0.1:8080/find :查询所有数据;
http://127.0.0.0.1:8080/findByName :通过名称查找;
只要在浏览器中能看到数据,那么恭喜你,基本的使用算是成功了。那么你肯定会有疑问,看下文。
(5) 配置文件
我们会发现我们根本没有做什么配置,所以spring boot提供了默认的一些配置,比如地址,端口号,那么如果我们修改了mongodb默认的端口号27017,Spring boot 也给我们配置的地方application.properties文件,具体支持如下一些配置:
# MONGODB (MongoProperties)
spring.data.mongodb.authentication-database= # Authentication database name.
spring.data.mongodb.database=test # Database name.
spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use.
spring.data.mongodb.grid-fs-database= # GridFS database name.
spring.data.mongodb.host=localhost # Mongo server host.
spring.data.mongodb.password= # Login password of the mongo server.
spring.data.mongodb.port=27017 # Mongo server port.
spring.data.mongodb.repositories.enabled=true # Enable Mongo repositories.
spring.data.mongodb.uri=mongodb://localhost/test # Mongo database URI. When set, host and port are ignored.
spring.data.mongodb.username= # Login user of the mongo server.
(6) 使用MongoTemplate进行操作;
首先在DemoController中引入MongoTemplate :
@Autowired
private MongoTemplate mongoTemplate;
编写访问方法:
@RequestMapping("find2")
public List<DemoInfo> find2(){
return mongoTemplate.findAll(DemoInfo.class);
}
访问地址:http://127.0.0.1:8080/find2 ,如果看到和find一样的数据,恭喜你你成功了。好了暂时就介绍到这里。
à悟空学院:https://t.cn/Rg3fKJD
学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!
SpringBoot视频:http://t.cn/A6ZagYTi
Spring Cloud视频:http://t.cn/A6ZagxSR
SpringBoot Shiro视频:http://t.cn/A6Zag7IV
SpringBoot交流平台:https://t.cn/R3QDhU0
SpringData和JPA视频:http://t.cn/A6Zad1OH
SpringSecurity5.0视频:http://t.cn/A6ZadMBe
Sharding-JDBC分库分表实战:http://t.cn/A6ZarrqS
分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr
相关推荐
Spring Boot提供了多种集成Session的解决方案,其中一种就是使用Redis作为Session的存储介质。Redis是一个高性能的键值数据库,支持丰富的数据结构,如字符串、哈希、列表、集合等,非常适合用来存储Session。 要...
在本节中,我们将深入探讨"Spring Boot起步之Hello World"这一主题,这是学习Spring Boot框架的典型入门教程。Spring Boot是由Pivotal团队开发的一个框架,它旨在简化Spring应用程序的初始搭建以及开发过程,通过...
总的来说,"Spring Boot系列教程入门"将涵盖以上知识点,并逐步教你如何从零开始搭建和运行一个完整的Spring Boot应用,包括配置、依赖管理、数据访问、Web开发和部署等方面,让你快速成为Spring Boot开发的行家里手...
1. 创建第一个 Spring Boot 项目:从零开始创建一个简单的 "Hello, World!" 应用,理解 Maven 或 Gradle 项目的结构。 2. 使用 Spring Boot 的自动配置:探究如何利用自动配置来简化配置文件。 3. 开发 RESTful API...
在本文中,我们将详细介绍如何从零开始搭建一个基于Spring Boot的开发环境,其中包括Spring Boot、Mybatis和Swagger2的集成。首先,让我们了解为何选择Spring Boot。 **为什么使用Spring Boot** Spring Boot是...
综上所述,《Spring Boot 2 Recipes》这本书不仅是一本实用的技术手册,还是一本引导读者从零开始到精通 Spring Boot 2 的宝贵资源。无论是新手还是有经验的开发者,都能从中获得有价值的指导和启发。
综上所述,"spring boot中文参考指南"这份文档将涵盖以上各个方面的内容,指导读者从零开始学习Spring Boot,直至掌握构建微服务的关键技能。这份PDF资源对于Spring Boot初学者或是希望提升微服务开发能力的开发者来...
10. **实战项目**:通过实际案例演示如何从零开始构建一个完整的Spring Boot应用,包括前后端分离、API设计、部署和运维等方面。 阅读本书,不仅可以帮助开发者快速上手Spring Boot,还能深入理解其设计理念,提升...
5. 零配置:Spring Boot推崇“约定优于配置”的原则,很多配置都可以默认工作,但仍然允许你自定义设置。 在文档中,你会找到以下主要部分的详细信息: 1. **快速入门**:介绍如何创建第一个Spring Boot应用,包括...
这大大节省了开发者从零开始构建新项目的时间,提高了开发效率。 下面我们将深入探讨Spring Boot的核心特性和主要知识点: 1. **起步依赖(Starter Dependencies)**:Spring Boot通过“起步依赖”管理依赖关系,...
教程包含了完整的视频教程和源代码,旨在帮助开发者从零开始掌握这一技术栈。 首先,基础环境的搭建至关重要。"java项目本地环境搭建手册.pdf"提供了详尽的指南,涵盖了Java开发环境的配置,包括JDK的安装、IDE的...
根据给定文件的信息,我们...通过以上学习路径,开发者可以从零开始逐步掌握Spring Boot及其相关技术栈,最终成为一名合格的Spring Boot开发者。在整个过程中,持续实践和参与开源项目对于提升技能也是非常有帮助的。
如果你想要从零开始,可以使用Spring Initializr创建一个新的Spring Boot项目,选择Gradle作为构建工具,使用Groovy语言,并且指定Spring Boot的版本为1.5.6.RELEASE。同时,确保添加Web和H2数据库依赖项。 接下来...
它集成了许多常用的第三方库,例如 Jackson、JDBC、MongoDB、Redis 和 Mail 等,使得这些库可以实现零配置的开箱即用。 ### Maven 与 Spring Boot #### Maven 继承与依赖管理 在使用 Maven 进行项目管理时,可以...
《Spring中文版基础教程》是一本面向初学者的详尽指南,旨在帮助读者从零开始掌握Spring框架的基础知识。Spring是Java开发中最流行的轻量级框架之一,它提供了丰富的功能来简化企业级应用的开发。本教程将带你一步步...
通过这个课程,学员将能从零开始,逐步建立起对Spring Boot的全面认知,并能独立开发出功能完备的应用。通过阅读和实践"GitChatLesson-SpringBootStudy-master"中的源代码,将有助于巩固理论知识并提升实际操作能力...
- **在线课程**:如“百战程序员”的Spring Data视频教程,适合从零开始学习到进阶。 - **社区论坛**:Stack Overflow、GitHub等社区可以获取最新的技术动态和解决实际遇到的问题。 综上所述,Spring Data是现代...
这使得开发者无需从零开始配置每一个细节,从而大幅提高开发效率。起步依赖则让开发者能够只关注自己的业务代码,而不需要花费太多时间在依赖管理上。例如,使用Spring Initializr生成项目时,你可以根据需要选择...
本教程将深入探讨Spring Boot的核心特性,并逐步引导你从零开始构建一个完整的Spring Boot应用。我们将涵盖以下主要内容: 1. **Spring Boot简介**:首先,我们将了解Spring Boot的基本概念,包括它的设计理念、...
视频教程“springboot儿童玩具售卖网站的设计与实现.mp4”将详细讲解以上各个步骤,包括代码实现、配置详解、问题排查等,帮助开发者从零开始构建这样一个完整的电商平台。通过学习,不仅可以掌握Spring Boot的实践...