构建项目
初始化
spring init -b=2.2.7.RELEASE -j=1.8 -d=web,data-mongodb --build=gradle my-mongodb && cd my-mongodb
gradle版本配置(有固定的gradle版本可以忽略):
> vim gradle/wrapper/gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
项目配置application.properties修改:
> vim src/main/resources/application.properties
# 端口
server.port=8082
# MONGO
spring.data.mongodb.database=machine
spring.data.mongodb.host=192.168.2.234
spring.data.mongodb.port=27017
spring.data.mongodb.username=<mongodb-username>
spring.data.mongodb.password=<mongodb-passport>
spring.data.mongodb.authentication-database=admin
为了使用方便,可以添加lombook配置:
> vim build.gradle
# 其他配置不变
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
更多参考:lombook
插入和查询
添加模型:
> vim src/main/java/com/example/mymongodb/Machine.java
package com.example.mymongodb;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* @author by Remer
* @date on 2020-12-23
*/
@Document(collection = "machine")
@Data
public class Machine {
@Id
private String id;
private String machineName;
private String fenceName;
private String remark;
}
控制器代码:
> vim src/main/java/com/example/mymongodb/MongoController.java
package com.example.mymongodb;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author by Remer
* @date on 2020-12-23
*/
@RestController
public class MongoController {
private MongoService mongoService;
@Autowired
public MongoController(MongoService mongoService) {
this.mongoService = mongoService;
}
@PostMapping("/machines")
public String insert(){
return mongoService.insert();
}
@GetMapping("/machines")
public List<Machine> list() {
return mongoService.findAll();
}
}
服务层代码:
> vim src/main/java/com/example/mymongodb/MongoService.java
package com.example.mymongodb;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
/**
* @author by Remer
* @date on 2020-12-23
*/
@Service
public class MongoService {
private MongoTemplate mongoTemplate;
@Autowired
public MongoService(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
public String insert() {
List<Machine> machines = new ArrayList<>();
for (int i = 0; i < 100; i++) {
Machine machine = new Machine();
machine.setMachineName("测试机械" + i);
machine.setFenceName("测试机械围栏" + i);
machine.setRemark("测试机械备注" + i);
machines.add(machine);
}
mongoTemplate.insert(machines, Machine.class);
return "success";
}
public List<Machine> findAll() {
return mongoTemplate.findAll(Machine.class);
}
}
插入
返回数据:
"success"
查询
返回数据:
[
{
"id": "5fe2dff06ad8e42376f13e59",
"machineName": "测试机械0",
"fenceName": "测试机械围栏0",
"remark": "测试机械备注0"
},
{
"id": "5fe2dff06ad8e42376f13e5a",
"machineName": "测试机械1",
"fenceName": "测试机械围栏1",
"remark": "测试机械备注1"
},
{
"id": "5fe2dff06ad8e42376f13e5b",
"machineName": "测试机械2",
"fenceName": "测试机械围栏2",
"remark": "测试机械备注2"
},
{
"id": "5fe2dff06ad8e42376f13e5c",
"machineName": "测试机械3",
"fenceName": "测试机械围栏3",
"remark": "测试机械备注3"
}
*** 省略数据 ***
]
网友评论