依赖
<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>
实体
package com.jf.entity;
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;import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;@Document(collection = "user")
public class User {
@Id
private String userId;
@NotNull @Indexed(unique = true)
private String username;
@NotNull
private String password;
@NotNull
private String name;
@NotNull
private String email;
@NotNull
private Date registrationDate = new Date();
private Set<String> roles = new HashSet<>();public User() { }
@PersistenceConstructor
public User(String userId, String username, String password, String name, String email,
Date registrationDate, Set<String> roles) {
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;
}@Override
public String toString() {
return "User{" +
"userId=" + userId +
", username='" + username + '\'' +
", password='" + password + '\'' +
", name='" + name + '\'' +
", email='" + email + '\'' +
", registrationDate=" + registrationDate +
", roles=" + roles +
'}';
}}
持久化
package com.jf.mapper;
import org.springframework.data.mongodb.repository.MongoRepository;import com.jf.entity.User;
public interface UserRepository extends MongoRepository<User, String> {
User findByUsername(String username);
}
配制文件
package com.jf.config;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
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 java.util.ArrayList;
import java.util.List;@Configuration
//@PropertySource({"classpath:data-source.properties"})
@EnableMongoRepositories(basePackages = "com.jf.mapper")
public class DataSourceConfig extends AbstractMongoConfiguration {
@Autowired private Environment env;@Override
public String getDatabaseName(){
return env.getRequiredProperty("mongo.name");
}@Override
@Bean
public Mongo mongo() throws Exception {
ServerAddress serverAddress = new ServerAddress(env.getRequiredProperty("mongo.host"));
List<MongoCredential> credentials = new ArrayList<>();
return new MongoClient(serverAddress, credentials);
}
}
application.properties
# MongoDB
mongo.username=test
mongo.password=test
mongo.host=localhost
mongo.name=test
mongo.port=27017
测试
@RequestMapping("/hello3")
public Student hello3(){
System.out.println("info =================");
List<User> users = userRepository.findAll();
for(User user : users){
System.out.println(user.getUserId()+user.getName());
}
Student s = new Student();
s.setId("999999");
s.setTimed(new Date());
s.setDes("22555");
s.setName("zzq");
return s;
}
当然也可以集成neo4j