SpringBoot集成MongoDB
来源:互联网 发布:java编写工具 编辑:程序博客网 时间:2024/06/07 00:33
本文介绍采用eclipse,测试采用junit
如需转载请标明出处,谢谢。
代码结构如下图:
1.MongoDB依赖配置
pom.xml
<?xml version="1.0" encoding="UTF-8"?><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.cesat</groupId><artifactId>springBootMongoDB</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>springBootMongoDB</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.8.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-mongodb</artifactId></dependency><dependency><groupId>org.pegdown</groupId><artifactId>pegdown</artifactId><version>1.4.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-hateoas</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
2.文档建模
user.java
package com.cesat.bean;import java.util.Date;import java.util.HashSet;import java.util.Set;import javax.validation.constraints.NotNull;import org.springframework.data.annotation.Id;import org.springframework.data.annotation.PersistenceConstructor;import org.springframework.data.mongodb.core.index.Indexed;import org.springframework.data.mongodb.core.mapping.Document;@Document(collection = "user")public class User {@Idprivate String userId;@NotNull@Indexed(unique = true)private String username;@NotNullprivate String password;@NotNullprivate String name;@NotNullprivate String email;@NotNullprivate Date registrationDate = new Date();private Set<String> roles = new HashSet<>();public User() {}@PersistenceConstructorpublic User(String userId, String username, String password, String name, String email, Date registrationDate,Set<String> roles) {super();this.userId = userId;this.username = username;this.password = password;this.name = name;this.email = email;this.registrationDate = registrationDate;this.roles = roles;}public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Date getRegistrationDate() {return registrationDate;}public void setRegistrationDate(Date registrationDate) {this.registrationDate = registrationDate;}public Set<String> getRoles() {return roles;}public void setRoles(Set<String> roles) {this.roles = roles;}}3.文档持续化
UserPepository.java
package com.cesat.bean;import org.springframework.data.mongodb.repository.MongoRepository;public interface UserPepository extends MongoRepository<User, String> {//findByUsername中Username大小写敏感,否则eclipse编译不通过public User findByUsername();}TestDataSourceConfig.java
package com.cesat.bean;import java.util.ArrayList;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;import org.springframework.core.env.Environment;import org.springframework.data.mongodb.config.AbstractMongoConfiguration;import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;import com.mongodb.Mongo;import com.mongodb.MongoClient;import com.mongodb.MongoCredential;import com.mongodb.ServerAddress;@Configuration//启用资源库并设定定义资源库接口放置的位置@EnableMongoRepositories(basePackages = "com.cesat.bean")//指定读取数据库配置文件的位置和名称@PropertySource("classpath:application.properties")public class TestDataSourceConfig extends AbstractMongoConfiguration {@Autowiredprivate Environment env;@Overrideprotected String getDatabaseName() {// TODO Auto-generated method stubreturn env.getRequiredProperty("mongo.name");}@Override@Beanpublic Mongo mongo() throws Exception {// TODO Auto-generated method stubServerAddress serverAddress=new ServerAddress(env.getRequiredProperty("mongo.host"));List<MongoCredential> credentials=new ArrayList<>();return new MongoClient(serverAddress, credentials);}}
4.application.properties配置
application.properties
#MongoDBmongo.host=localhostmongo.name=testmongo.port=27017
5.ServletInitializer.java(eclispe 创建springBoot项目时,自动创建。)
ServletInitializer.java
package com.cesat;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.support.SpringBootServletInitializer;public class ServletInitializer extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(SpringBootMongoDbApplication.class);}}
6.SpringBootMongoDbApplication.java(eclispe 创建springBoot项目时,自动创建。)
SpringBootMongoDbApplication.java
package com.cesat;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class SpringBootMongoDbApplication {public static void main(String[] args) {SpringApplication.run(SpringBootMongoDbApplication.class, args);}}
7.测试
RepositoryTests.java
package com.cesat.bean;import java.util.Date;import java.util.HashSet;import java.util.List;import java.util.Set;import org.junit.Before;import org.junit.FixMethodOrder;import org.junit.Test;import org.junit.runner.RunWith;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes = {TestDataSourceConfig.class })@FixMethodOrderpublic class RepositoryTests {private static Logger logger=LoggerFactory.getLogger(RepositoryTests.class);@AutowiredUserPepository userPepository;@Beforepublic void setup(){Set<String> roles = new HashSet<>();roles.add("manage");User user = new User("1", "zhangsan", "123456", "zhangsan", "zhangsan@qq.com", new Date(), roles);userPepository.save(user);}@Testpublic void findAll(){List<User> users= userPepository.findAll();if(users!=null&&users.size()>0){for (User user : users) {logger.info("User:"+user.getName());//其他打印信息省略}}}}
8.测试结果;
阅读全文
1 0
- SpringBoot -- 集成MongoDB
- SpringBoot -- 集成MongoDB
- SpringBoot中集成MongoDB
- SpringBoot集成MongoDB
- springBoot集成MongoDB
- springboot集成mongodb使用mongoTemplate和MongoRepository
- mongodb学习(三):springboot集成mongodb例子
- 13.6 SpringBoot集成Mongodb开发问题@EnableMongoRepositories路径配置
- 六.SpringBoot集成实例系列-单数据源mongodb(权限控制)
- 七.SpringBoot集成实例系列-多数据源mongodb(一)
- springboot集成Mongodb详细篇附详细源码
- SpringBoot集成Shiro并用MongoDB做Session存储
- SpringBoot集成Shiro并用MongoDB做Session存储
- SpringBoot集成Shiro并用MongoDB做Session存储
- SpringBoot-MongoDB
- 《Springboot极简教程》 第11章 Springboot集成mongodb开发
- 微服务,微架构[三]之springboot集成nosql数据库mongodb
- 七.SpringBoot集成实例系列-多数据源mongodb+lombok(二)
- 用队列实现一个栈的操作
- HashMap底层存储原理
- eclipse初始化配置
- 数串问题(java)
- Android系统设置源码分析(ROM)
- SpringBoot集成MongoDB
- JAVA数组排序
- 关于JS那些容易被你忽略的那些点(1)
- 点击按钮弹出菜单
- iOS UIImage生成高性能圆角图片
- 2017/11总结
- java过滤字符串中非数字字符
- 测绘地理信息遥感类面试相关问题记录
- 算法(十二)最小和