本文會練習使用IDE創建一個 mongodb 的簡單 web 服務,儘可能會很詳細,作到初次看的也能創建成功。java
Java 開發推薦使用 IDE,能夠免去你不少麻煩。git
第一步,創建你的項目: File->New->Project...,選擇 Spring Initializr。github
默認點擊 Next-> 就行了。web
選擇依賴,本項目先起一個簡單的 mongodb web服務,因此選擇了web和mongodb的dependencies,而後點擊next:spring
最後一步也點擊 next就好。mongodb
完成後能夠看到此目錄結構:數據庫
能夠看到com.example.demo目錄下會有一個DemoApplication.java 的文件, 這個就是整個服務的入口文件。這個文件咱們基本不用去碰它作任何改動。
創建一個web 服務,一般的步驟:第一步是創建路由,第二步是寫個controller,第三步是創建service,第四步是service 調用Dao層控制db。api
首先直接在 com.example.demo 目錄下建立個controller文件,java裏面router直接能夠用註解完成,不用創建一個文件專門存router地址。bash
// AccountController
package com.example.demo;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
@RestController
@RequestMapping("/api/v1")
public class AccountController {
@RequestMapping("/account")
public String account() {
return "hello world";
}
}
複製代碼
這就是一個簡單的web服務接口。點擊IDE的啓動就能夠跑起來。app
而後訪問如下所寫的地址就能夠獲得返回結果;
在com.example.demo目錄下建立AccountRepository.java,引入Account類,直接繼承MongoRepository。
// AccountRepository
package com.example.demo;
import java.util.List;
import com.example.demo.Account;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
@RepositoryRestResource
public interface AccountRepository extends MongoRepository<Account, String> {
}
複製代碼
在com.example.demo目錄下建立 Account.java
// Acount
package com.example.demo;
import org.springframework.data.annotation.Id;
// import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.mapping.Document;
import org.bson.types.ObjectId;
import java.io.Serializable;
@Document(collection = "account")
public class Account implements Serializable {
@Id
private ObjectId _id;
private String realName;
public ObjectId getId() {
return _id;
}
public String getName() {
return realName;
}
public String setName(String realName) {
return this.realName = realName;
}
}
複製代碼
以上就是簡單的引用一個 Account Collection 的實現,
最後還要在application.properties指定數據庫的鏈接,這個文件放在 resources,通常項目的配置類參數都寫在這裏。
若是歷來沒起過一個 mongodb的話, 先去查查。
spring.data.mongodb.uri=mongodb://localhost:27017/test_invest
複製代碼
在引入了db的collection以後,controller能夠作更多的東西了。
如下,簡單寫了個獲取account這個collection內全部document的方法, 還有插入一個account的方法:
// AccountController
package com.example.demo;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
@RestController
@RequestMapping("/api/v1")
public class AccountController {
@Autowired
AccountRepository accountRepository;
@RequestMapping("/account")
public List<Account> account() {
return accountRepository.findAll();
}
@RequestMapping("/addAccount")
public Account addAccount(@RequestParam String name) {
System.out.println(name);
Account account = new Account();
account.setName(name);
Account result = accountRepository.insert(account);
System.out.println(result);
return result;
}
}
複製代碼
整個項目的目錄結構是這樣的:
再次運行項目:
以上就已經完整的實現了一個接口服務。
項目 demo 地址:[[github.com/yuchenzhen/…]]