前置工作
- 熟悉本系列的工作環境
- MongoDB已經搭建完成
- MongoDB啓用驗證
引入&配置參數
引入 spring-boot-starter-data-mongodb
build.gradle
compile ('org.springframework.boot:spring-boot-starter-data-mongodb:'+springBootVersion)
配置Mongodb參數
- uri: mongodb://dev_xxx:[email protected]:27017/kakme
- dev_xxx:dev_xxx 爲 username:password
- kakme 爲database
- 如果用戶名密碼中帶有URI特殊字符(”:”,”@”),請使用host方式
URI 方式:application.yml
spring:
data:
mongodb:
uri: mongodb://dev_xxx:dev_xxx@127.0.0.1:27017/kakme
OTHER: application.yml
spring:
data:
mongodb:
host: 127.0.0.1
port: 27017
username: dev_xxx
password: dev_xxxx
database: kakme
使用MongoRepository進行CRUI操作
創建Mongodb Bean,使用@Id標識 ObjectId
MessageInfo.java
/**
* @author cwenao
* @version $Id MessageInfo.java, v 0.1 2017-01-30 12:29 cwenao Exp $$
*/
public class MessageInfo {
@Id
private String id;
private String title;
private String msgType;
private String msgInfo;
//getter setter
... ...
@Override
public String toString() {
return "[ id ="+id+", title ="+title+", msgInfo="+msgInfo+" ]";
}
}
自定義Repository進行額外的操作,集成 MongoRepository
MsgInfoRepository.java,此爲 interface
/**
* @author cwenao
* @version $Id MsgInfoRepository.java, v 0.1 2017-01-30 12:33 cwenao Exp $$
*/
public interface MsgInfoRepository extends MongoRepository<MessageInfo,String> {
MessageInfo queryMsgInfoByTitle(String title);
}
創建 controller,使用上幾章的 UserInfoController
UserInfoController
/**
* @author cwenao
* @version $Id UserInfoController.java, v 0.1 2017-01-25 18:35 cwenao Exp $$
*/
@Controller
public class UserInfoController extends AbstractCacheSupport {
@Autowired
MsgInfoRepository msgInfoRepository;
@RequestMapping("/messageInfo")
public String messageInfo(String title, ModelMap modelMap) {
MessageInfo messageInfo = new MessageInfo();
messageInfo.setMsgInfo("hello world !");
messageInfo.setTitle(title);
messageInfo.setMsgType("1");
msgInfoRepository.save(messageInfo);
modelMap.addAttribute("test_mongodb",
msgInfoRepository.queryMsgInfoByTitle("cwenao").toString());
return "userinfo/accountInfo";
}
}
測試
- 依次啓動 discovery、configserver、apigateway、dbserver
訪問 http://localhost:10002/dbserver/messageInfo?title=cwenao
代碼
代碼請移步 Github參考地址
如有疑問請加公衆號(K171),如果覺得對您有幫助請 github start