Spring Boot MongoDB 实例

节选自《Netkiller Java 手札》

11.12.3. Spring boot mongodb

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.authentication.UserCredentials;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

import com.mongodb.Mongo;

@Configuration
@SpringBootApplication
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })
@ComponentScan({ "cn.netkiller.controller", "cn.netkiller.rest" })
@EnableMongoRepositories
public class Application {

	@SuppressWarnings("deprecation")
	public @Bean MongoDbFactory mongoDbFactory() throws Exception {
		UserCredentials userCredentials = new UserCredentials("finance", "En7d0l0wssXQ8owzedjb82I0BMd4pFoZ");
		return new SimpleMongoDbFactory(new Mongo("db.netkiller.cn"), "finance", userCredentials);
	}

	public @Bean MongoTemplate mongoTemplate() throws Exception {
		return new MongoTemplate(mongoDbFactory());
	}

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}

}

11.7.2.3. POJO

ackage cn.netkiller.pojo;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "tracker")
public class Tracker {
	@Id
	private String id;
	private String name;
	private String unique;
	private String hostname;
	private String referrer;
	private String href;

	public Tracker() {
		// TODO Auto-generated constructor stub
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getUnique() {
		return unique;
	}

	public void setUnique(String unique) {
		this.unique = unique;
	}

	public String getHostname() {
		return hostname;
	}

	public void setHostname(String hostname) {
		this.hostname = hostname;
	}

	public String getReferrer() {
		return referrer;
	}

	public void setReferrer(String referrer) {
		this.referrer = referrer;
	}

	public String getHref() {
		return href;
	}

	public void setHref(String href) {
		this.href = href;
	}

	@Override
	public String toString() {
		return "Tracker [id=" + id + ", name=" + name + ", unique=" + unique + ", hostname=" + hostname + ", referrer=" + referrer + ", href=" + href + "]";
	}

}		

11.7.2.4. Controller

			package cn.netkiller.controller;

import cn.netkiller.pojo.Tracker;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

@Controller
public class TrackerController {

	@Autowired
	private MongoTemplate mongoTemplate;

	public TrackerController() {

	}

	@RequestMapping("/tracker/test")
	@ResponseBody
	String hello() {
		return "Hello World!";
	}

	@RequestMapping("/tracker")
	@ResponseBody
	String execute() {
		Tracker tracker = new Tracker();
		tracker.setName("test");
		tracker.setUnique("111223456");
		tracker.setHostname("www.example.com");
		tracker.setHref("http://example.com/test.html");
		tracker.setReferrer("http://example.com/");
		this.mongoTemplate.insert(tracker);
		
		return tracker.toString();
	}

}

11.7.2.5. 查看测试结果

			> db.tracker.find();
{ "_id" : ObjectId("5757c0b92c526a6bda5eea3a"), "_class" : "cn.netkiller.repositories.Tracker", "name" : "test", "unique" : "111223456", "hostname" : "www.example.com", "referrer" : "http://example.com/", "href" : "http://example.com/test.html" }

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2016-08-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏镁客网

贾跃亭和恒“贵人”闹翻了

在这张公告中,恒大公开指责了贾跃亭因进一步融资不成,欲撕破此前签订的合约,谋划将恒大集团踢出“造车局”的阴谋。

521
来自专栏AI科技大本营的专栏

巴菲特评科技股:投资 IBM 是个错误,还会增持苹果,亚马逊简直是奇迹

北京时间 5 月 6 日,跨国投资及控股集团公司伯克希尔·哈撒韦(Berkshire Hathaway)在美国奥马哈总部召开了一年一次的全球股东大会,创始人股神...

1012
来自专栏PPV课数据科学社区

有趣的网购行为数据分析

京东商城通过深度分析8000多万用户的真实购买行为,通过一系列的数据,揭秘网购群体的购物习惯。其中有不少统计是非常有趣的。像送礼物这一块,送男友与送丈夫基本相当...

3588
来自专栏机器人网

亚洲首个,中国创造!码头空无一人,只有机器人

在印象中,码头是个熙熙攘攘的地方,而在青岛港,5月11日首次启用的一个新码头却空无一人,来回穿梭的机器人承担了粗活累活,它们到底是如何工作的?下面就来揭秘亚洲首...

3498
来自专栏挖数

未来的两马之争,马化腾怎样才能打赢马云?

论年龄,马化腾出生于1971年,今年47岁,马云出生于1964年,今年54岁,不管身高和年龄,真打起来马云都没有优势啊。

783
来自专栏大数据文摘

数据脱口秀 | 从腼腆印度男孩到谷歌CEO, Sundar Pichai重回母校

1523
来自专栏AI科技评论

预告 | 搜狗CEO王小川:“搜索的未来是问答” - CCF-GAIR 2017

由中国计算机学会(CCF)主办、雷锋网与香港中文大学(深圳)全程承办的 AI 盛会 --「全球人工智能与机器人峰会」(CCF-GAIR),将于 7.7-7.9 ...

3108
来自专栏罗超频道

春晚成中国“超级碗”,互联网巨头抢着到碗里来

©原创2015-02-20罗超 禁燃禁放让除夕夜少了几分传统的热闹,互联网产业的兴盛则带来了新的年味:互联网企业轮番上阵、红包大战达到最高潮。朋友圈有一个很有意...

2555
来自专栏VRPinea

世界避孕日:VR让你想爱就爱,无所畏惧

3438
来自专栏大数据文摘

从Facebook手机到谷歌相机,史上商业巨头们的110个败笔

1693

扫码关注云+社区