将MongoDB集成到您的Spring项目中

本文展示了如何通过注释配置将MongoDB集成到您的spring项目中。

我们将从Gradle配置开始。

group 'com.gkatzioura.spring'
version '1.0-SNAPSHOT'buildscript {repositories {mavenCentral()}dependencies {classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.7.RELEASE")}
}apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'jar {baseName = 'mdb-spring-boot'version =  '0.1.0'
}repositories {mavenCentral()
}sourceCompatibility = 1.8
targetCompatibility = 1.8dependencies {compile("org.springframework.boot:spring-boot-starter-web")compile('com.googlecode.json-simple:json-simple:1.1.1')compile("org.springframework.boot:spring-boot-starter-actuator")compile("org.springframework.data:spring-data-mongodb:1.8.0.RELEASE")compile("ch.qos.logback:logback-classic:1.1.3")compile("ch.qos.logback:logback-core:1.1.3")compile("org.json:json:20150729")compile("com.google.code.gson:gson:2.4")compile("org.slf4j:slf4j-api:1.7.12")testCompile("junit:junit")testCompile('org.springframework.boot:spring-boot-starter-test')
}task wrapper(type: Wrapper) {gradleVersion = '2.3'
}

我们将使用spring注释继续进行MongoDB配置。

package com.gkatzioura.spring.config;import com.mongodb.MongoClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;import java.net.UnknownHostException;/*** Created by oSeven3 on 21/10/2015.*/
@Configuration
public class MongoDbConfiguration {public @Bean MongoDbFactory getMongoDbFactory() throws UnknownHostException {return new SimpleMongoDbFactory(new MongoClient("localhost",27017),"mongotest");}public @Bean(name = "mongoTemplate") MongoTemplate getMongoTemplate() throws UnknownHostException {MongoTemplate mongoTemplate = new MongoTemplate(getMongoDbFactory());return mongoTemplate;}}

接下来,我们将定义模型。 我们将创建位置模型,其中将包含纬度经度。

package com.gkatzioura.spring.persistence.entities;import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;import java.math.BigDecimal;
import java.util.Date;
import java.util.UUID;@Document(collection = "location")
public class Location {@Idprivate String id;private BigDecimal latitude;private BigDecimal longitude;private Date timestamp;public String getId() {return id;}public void setId(String id) {this.id = id;}public BigDecimal getLatitude() {return latitude;}public void setLatitude(BigDecimal latitude) {this.latitude = latitude;}public BigDecimal getLongitude() {return longitude;}public void setLongitude(BigDecimal longitude) {this.longitude = longitude;}public Date getTimestamp() {return timestamp;}public void setTimestamp(Date timestamp) {this.timestamp = timestamp;}
}

然后我们将创建我们的存储库

package com.gkatzioura.spring.persistence.repositories;import com.gkatzioura.spring.persistence.entities.Location;
import org.springframework.data.repository.CrudRepository;import java.util.UUID;public interface LocationRepository extends CrudRepository<Location,String> {
}

然后我们将定义我们的控制器

package com.gkatzioura.spring.controller;import com.gkatzioura.spring.persistence.entities.Location;
import com.gkatzioura.spring.persistence.repositories.LocationRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.ArrayList;
import java.util.List;import java.io.IOException;/*** Created by oSeven3 on 21/10/2015.*/@RestController
@RequestMapping("/location")
public class LocationController {@Autowiredprivate LocationRepository locationRepository;private static final Logger LOGGER = LoggerFactory.getLogger(LocationRepository.class);@RequestMapping(value = "/",method = RequestMethod.POST)@ResponseBodypublic String post(@RequestBody Location location) {locationRepository.save(location);return "OK";}@RequestMapping(value = "/",method = RequestMethod.GET)@ResponseBodypublic List<Location> get() {List<Location> locations = new ArrayList<>();locationRepository.findAll().forEach(l->locations.add(l));return locations;}}

最后但并非最不重要的是我们的Application类

package com.gkatzioura.spring;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Created by gkatziourasemmanouil on 8/15/15.*/
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}

为了跑就跑

gradle bootRun

翻译自: https://www.javacodegeeks.com/2015/11/integrate-mongodb-to-your-spring-project.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 内存一直在增加,linux – 缓存内存和共享内存总和超过总内...

所有共享内存也计为缓存.共享内存是在内部使用tmpfs实现的. tmpfs实现为页面缓存的瘦包装器,只是没有任何后备存储(除了tmpfs是可交换的).男人自由不解释这个.至少在我的系统上(由procps-ng提供,最后更新2016-06-03).抱歉.所有man free告诉你,缓存是从/ proc / meminfo中的缓存…

vertx rest 跨域_在基于简单Vertx Rest的应用程序上为REST资源设置基本响应HTTP标头...

vertx rest 跨域我是Vert.x的新手&#xff0c;但作为Java开发人员&#xff08;辛勤工作&#xff09;&#xff0c;与NodeJS或其他任何基于Reactor的框架/库相比&#xff0c;我觉得它更加有趣并且很有前途。 因此&#xff0c;我正在使用Vert.x实现一个非常简单的Restful API。 今…

linux rpm mysql mysql_config,Linux CentOS6 mysql rpm安装

选择操作系统及版本&#xff1a;点击5.6版本链接将下载好的文件上传至服务器下面开始安装&#xff1a;检查是是否有mysql的包# rpm -qa | grep -i mysql删除原有包# yum -y remove mysql-libs*开始安装下载好的三个文件&#xff1a;# rpm -ivh MySQL-server-5.6.38-1.el6.x86_6…

java 可视化_可视化Java 9模块关系

java 可视化正如我在之前的文章中所述 &#xff0c;我已经在Java 9 Jigsaw构建上运行Eclipse Neon了一段时间&#xff0c;并且没有任何问题。 我在周末花了几个小时来修改一些模块化工具的想法。 我为Eclipse Neon写了一个小插件&#xff0c;可视化了各个模块之间的连接。 现…

zybo的linux开发教程,Zybo全栈开发入门教程——连载三:创建Linux设备驱动和应用程序...

作者&#xff1a;Commanderfranz&#xff0c;编译&#xff1a; kenshin通过前面两篇文章我们不仅创建的自定义IP模块还移植了Linux操作系统&#xff0c;今天这篇文章的内容是将这两部分联系起来&#xff0c;其实我们创建的myLed IP相对于Linux操作系统可以是它的一个底层设备&a…

jwt令牌_JWT –生成和验证令牌–示例

jwt令牌JWT提供了一种非常有趣的方式来表示可以验证和信任的应用程序之间的声明。 我的目标是展示一个小的样本&#xff0c;它使用出色的Nimbus JOSE JWT库来生成和验证令牌。 总览 进行介绍的最佳地点之一是这里 。 简而言之&#xff0c;要从jwt.io网站的资料中借用&#xf…

linux 二进制差分工具,打造Android万能的软件更新库

今日科技快讯阿里星球今天在苹果商店发布的更新动态显示&#xff0c;其将在近期停止APP内的音乐服务&#xff0c;用户可以通过新版本内的指引和说明&#xff0c;导出本地音乐。这意味着上线八个月后&#xff0c;阿里星球做出了一个重大决定&#xff1a;停止音乐服务后&#xff…

jboss eap 7_JBoss EAP 7快速入门

jboss eap 7现在&#xff0c; 最新的Red Hat JBoss企业应用平台7的beta版已经发布&#xff0c;现在是时候探索可用的Java EE 7 快速入门并使用JBoss Developer Studio &#xff08;JDBS&#xff09;部署您的第一个应用程序了。 快速入门演示了JBoss EAP&#xff0c;Java EE 7和…

lambda 分类聚合_使用Java 8 Lambda,流和聚合

lambda 分类聚合总览 在本文中&#xff0c;我们将介绍使用Java 8 lambda&#xff0c;流和聚合来过滤和处理Collection中的对象。 这篇文章中的所有代码都可以在此处的 BitBucket中找到 。 对于此示例&#xff0c;我们将创建许多对象&#xff0c;这些对象代表我们IT基础架构中的…

linux下kegg注释软件,KEGG功能注释工具 KofamKOALA 安装与使用

KEGG数据库&#xff0c;即京都基因和基因组百科全书(Kyoto Encyclopedia of Genes and Genomes)&#xff0c;是系统分析基因功能、基因组信息的数据库。KofamKOALA是一个方便的KEGG功能注释工具&#xff0c;由创建KEGG的京都大学化研所生物信息中心学者在2019年11月发表于Bioin…

jooq_jOOQ API设计缺陷的怪异事件

jooqjOOQ是内部特定于域的语言&#xff08;DSL&#xff09; &#xff0c;它以Java&#xff08;宿主语言&#xff09;建模SQL语言&#xff08;外部DSL&#xff09;。 这篇热门文章描述了jOOQ API的主要机制&#xff1a; Java Fluent API设计器速成课程 。 任何人都可以根据该文…

linux镜像文件不要大于4g,Systemback制做大于4G的Ubuntu系统镜像

1 安装Systemback依此执行以下命令。sudo apt-get updatesudo add-apt-repository ppa:nemh/systembacksudo apt-get update && sudo apt-get install systemback unionfs-fuse安装完成&#xff1a;2 使用Systemback生成镜像文件输入管理员密码&#xff0c;打开后界面以…

黑马2016java_2016年成功的Java开发人员简介

黑马2016java2015年即将结束。 现在该总结过去一年中已完成的工作和未完成的工作。 此外&#xff0c;现在是预测下一个2016年的好时机。 您已经猜到这篇文章是关于2016年理想的Java开发人员的。 我想给你一个惊喜&#xff0c;这次我更改了预测的格​​式。 为了使预测更加客观…

红帽子linux笔试题,redhat-linux面试题

redhat-linux面试题1. 在Linux系统中&#xff0c;以 &#xff3f;文件&#xff3f;&#xff3f; 方式访问设备 。2. Linux内核引导时&#xff0c;从文件 /etc 中读取要加载的文件系统。3. Linux文件系统中每个文件用&#xff3f;节点&#xff3f;&#xff3f;来标识。4. 链接分…

lambda设计模式_使用lambda的装饰器设计模式

lambda设计模式随着Java中lambda的出现&#xff0c;我们现在有了一个新工具&#xff0c;可以更好地设计我们的代码。 当然&#xff0c;第一步是使用流&#xff0c;方法引用和Java 8中引入的其他简洁功能。 展望未来&#xff0c;我认为下一步是重新访问完善的设计模式&#xff…

linux监控nginx占用,使用zabbix 2.4 监控nginx

1、获取 Nginx 状态( HTTP Stub Status )/usr/local/nginx/sbin/nginx -V2、配置 nginx.confvim /usr/local/nginx/conf/nginx.conflocation ~ /nginx_status {stub_status on;access_log off;allow 127.0.0.1;allow 192.168.1.14;deny all;}3、编写脚本获取上面的 key 值vim /…

如何使用java代码生成_使用Java成功生成代码的7个技巧

如何使用java代码生成作为介绍&#xff0c;最近我有点安静&#xff0c;部分原因是我一直在忙于Chronicle-FIX的工作 。 这是Chronicle-Enterprise套件中的一个新的超低延迟库&#xff0c;我们证明了该库可以在低个位数微秒内解析和存储消息。 当然&#xff0c;它利用了我们的开…

多核 linux 绑定,Linux 操作系统下CPU多核心的绑定

现在多CPU的趋势越来越大了. 有时候为了更好地操作机器, 需要将某个进程绑定到具体的CPU上去. 下面给出了一个进程绑定到具体的CPU上去的一个例子.cpu.c[CODE]#include#include#include#include#include#define __USE_GNU#include#include#includeint main(int argc, char* arg…

java键盘事件键值表_Java的20年:重大事件的时间表

java键盘事件键值表翻译自: https://www.javacodegeeks.com/2015/12/2-decades-java-timeline-notable-events.htmljava键盘事件键值表

c语言printf到指定文件,急求如何将下列C语言程序数据存储到文件中?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中。#include int n0;int rest[7][7]; //全局声明,以供全局调用int main(){void perm(int list[],int ,int );int …