六.SpringBoot集成实例系列-单数据源mongodb(权限控制)
2017-09-13 17:47
525 查看
文章列表
本系列将通过实例分别实现Springboot集成mybatis(mysql),mail,mongodb,cassandra,scheduler,redis,kafka,shiro,websocket。
具体文章系列如下:
一.SpringBoot集成实例系列-xml型单数据源mybatis
二.SpringBoot集成实例系列-xml型多数据源mybatis
三.SpringBoot集成实例系列-注解型单数据源mybatis
四.SpringBoot集成实例系列-注解型多数据源mybatis
五.SpringBoot集成实例系列-邮件email
六.SpringBoot集成实例系列-单数据源mongodb
七.SpringBoot集成实例系列-多数据源mongodb
八.SpringBoot集成实例系列-缓存redis
九.SpringBoot集成实例系列-数据库cassandra
十.SpringBoot集成实例系列-定时任务scheduler
十一.SpringBoot集成实例系列-消息队列kafka
十二.SpringBoot集成实例系列-消息推送websocket
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
本文将通过实例实现springboot与mongodb集成。
1.需求
实现用户的增删查改
2.技术要点
2.1 springboot集成mongodb配置
通过username和password实现mongodb权限控制
2.2 MongoTemplate依赖注入
就像Spring提供的JDBC,hibernate和ibatis的template一样,spring-data-mongodb也提供了一个基础的泛型MongoTemplate供开发者可以快速的利用代码完成基础的crud工作。在实践中可以考虑完全省去dao层的设计,直接在service层注入相应的template实例。
spring-data-mongodb详情操作:
https://docs.spring.io/spring-data/data-mongodb/docs/current/reference/html/
3.代码实现
3.1 项目结构
3.2 properties配置文件
spring.application.name=spirngboot-int-mongodbeg
spring.data.mongodb.database=#
spring.data.mongodb.host=#
spring.data.mongodb.password=#
spring.data.mongodb.port=27017
spring.data.mongodb.username=#
3.3 UserEntity实体
package com.lm.entity;
import java.io.Serializable;
public class UserEntity implements Serializable {
private static final long serialVersionUID = -3258839839160856613L;
private Long id;
private String userName;
private String passWord;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "UserEntity{" +
"id=" + id +
", userName='" + userName + '\'' +
", passWord='" + passWord + '\'' +
'}';
}
}
3.4 MongoTemplate操作
package com.lm.dao.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import com.lm.dao.UserDao;
import com.lm.entity.UserEntity;
import com.mongodb.WriteResult;
@Component
public class UserDaoImpl implements UserDao {
@Autowired
private MongoTemplate mongoTemplate;
/**
* 创建对象
* @param user
*/
@Override
public void saveUser(UserEntity user) {
mongoTemplate.save(user);
}
/**
* 根据用户名查询对象
* @param userName
* @return
*/
@Override
public UserEntity findUserByUserName(String userName) {
Query query=new Query(Criteria.where("userName").is(userName));
UserEntity user = mongoTemplate.findOne(query , UserEntity.class);
return user;
}
/**
* 更新对象
* @param user
*/
@Override
public int updateUser(UserEntity user) {
Query query=new Query(Criteria.where("id").is(user.getId()));
Update update= new Update().set("userName", user.getUserName()).set("passWord", user.getPassWord());
//更新查询返回结果集的第一条
WriteResult result =mongoTemplate.updateFirst(query,update,UserEntity.class);
//更新查询返回结果集的所有
// mongoTemplate.updateMulti(query,update,UserEntity.class);
if(result!=null)
return result.getN();
else
return 0;
}
/**
* 删除对象
* @param id
*/
@Override
public void deleteUserById(Long id) {
Query query=new Query(Criteria.where("id").is(id));
mongoTemplate.remove(query,UserEntity.class);
}
}
3.5 测试用例
package com.lm;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.lm.dao.UserDao;
import com.lm.entity.UserEntity;
public class UserDaoTest extends AppTest {
@Autowired
private UserDao userDao;
@Test
public void testSaveUser() throws Exception {
UserEntity user=new UserEntity();
user.setId(2l);
user.setUserName("小明");
user.setPassWord("xiaoming1");
userDao.saveUser(user);
}
@Test
public void findUserByUserName(){
UserEntity user= userDao.findUserByUserName("小明");
System.out.println("user is "+user);
}
@Test
public void updateUser(){
UserEntity user=new UserEntity();
user.setId(2l);
user.setUserName("小红");
user.setPassWord("小红1");
userDao.updateUser(user);
}
@Test
public void deleteUserById(){
userDao.deleteUserById(1l);
}
}
3.6 实例结果
4. 代码地址
Github: https://github.com/a123demi/spring-boot-integration
本系列将通过实例分别实现Springboot集成mybatis(mysql),mail,mongodb,cassandra,scheduler,redis,kafka,shiro,websocket。
具体文章系列如下:
一.SpringBoot集成实例系列-xml型单数据源mybatis
二.SpringBoot集成实例系列-xml型多数据源mybatis
三.SpringBoot集成实例系列-注解型单数据源mybatis
四.SpringBoot集成实例系列-注解型多数据源mybatis
五.SpringBoot集成实例系列-邮件email
六.SpringBoot集成实例系列-单数据源mongodb
七.SpringBoot集成实例系列-多数据源mongodb
八.SpringBoot集成实例系列-缓存redis
九.SpringBoot集成实例系列-数据库cassandra
十.SpringBoot集成实例系列-定时任务scheduler
十一.SpringBoot集成实例系列-消息队列kafka
十二.SpringBoot集成实例系列-消息推送websocket
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
本文将通过实例实现springboot与mongodb集成。
1.需求
实现用户的增删查改
2.技术要点
2.1 springboot集成mongodb配置
通过username和password实现mongodb权限控制
2.2 MongoTemplate依赖注入
就像Spring提供的JDBC,hibernate和ibatis的template一样,spring-data-mongodb也提供了一个基础的泛型MongoTemplate供开发者可以快速的利用代码完成基础的crud工作。在实践中可以考虑完全省去dao层的设计,直接在service层注入相应的template实例。
spring-data-mongodb详情操作:
https://docs.spring.io/spring-data/data-mongodb/docs/current/reference/html/
3.代码实现
3.1 项目结构
3.2 properties配置文件
spring.application.name=spirngboot-int-mongodbeg
spring.data.mongodb.database=#
spring.data.mongodb.host=#
spring.data.mongodb.password=#
spring.data.mongodb.port=27017
spring.data.mongodb.username=#
3.3 UserEntity实体
package com.lm.entity;
import java.io.Serializable;
public class UserEntity implements Serializable {
private static final long serialVersionUID = -3258839839160856613L;
private Long id;
private String userName;
private String passWord;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "UserEntity{" +
"id=" + id +
", userName='" + userName + '\'' +
", passWord='" + passWord + '\'' +
'}';
}
}
3.4 MongoTemplate操作
package com.lm.dao.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import com.lm.dao.UserDao;
import com.lm.entity.UserEntity;
import com.mongodb.WriteResult;
@Component
public class UserDaoImpl implements UserDao {
@Autowired
private MongoTemplate mongoTemplate;
/**
* 创建对象
* @param user
*/
@Override
public void saveUser(UserEntity user) {
mongoTemplate.save(user);
}
/**
* 根据用户名查询对象
* @param userName
* @return
*/
@Override
public UserEntity findUserByUserName(String userName) {
Query query=new Query(Criteria.where("userName").is(userName));
UserEntity user = mongoTemplate.findOne(query , UserEntity.class);
return user;
}
/**
* 更新对象
* @param user
*/
@Override
public int updateUser(UserEntity user) {
Query query=new Query(Criteria.where("id").is(user.getId()));
Update update= new Update().set("userName", user.getUserName()).set("passWord", user.getPassWord());
//更新查询返回结果集的第一条
WriteResult result =mongoTemplate.updateFirst(query,update,UserEntity.class);
//更新查询返回结果集的所有
// mongoTemplate.updateMulti(query,update,UserEntity.class);
if(result!=null)
return result.getN();
else
return 0;
}
/**
* 删除对象
* @param id
*/
@Override
public void deleteUserById(Long id) {
Query query=new Query(Criteria.where("id").is(id));
mongoTemplate.remove(query,UserEntity.class);
}
}
3.5 测试用例
package com.lm;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.lm.dao.UserDao;
import com.lm.entity.UserEntity;
public class UserDaoTest extends AppTest {
@Autowired
private UserDao userDao;
@Test
public void testSaveUser() throws Exception {
UserEntity user=new UserEntity();
user.setId(2l);
user.setUserName("小明");
user.setPassWord("xiaoming1");
userDao.saveUser(user);
}
@Test
public void findUserByUserName(){
UserEntity user= userDao.findUserByUserName("小明");
System.out.println("user is "+user);
}
@Test
public void updateUser(){
UserEntity user=new UserEntity();
user.setId(2l);
user.setUserName("小红");
user.setPassWord("小红1");
userDao.updateUser(user);
}
@Test
public void deleteUserById(){
userDao.deleteUserById(1l);
}
}
3.6 实例结果
4. 代码地址
Github: https://github.com/a123demi/spring-boot-integration
相关文章推荐
- 七.SpringBoot集成实例系列-多数据源mongodb(一)
- 七.SpringBoot集成实例系列-多数据源mongodb+lombok(二)
- 四.SpringBoot集成实例系列-注解型多数据源mybatis
- exchange2010系列(六)与ADRMS集成--实现自动邮件权限控制
- 一. SpringBoot集成实例系列-xml型单数据源mybatis
- 二.SpringBoot集成实例系列-xml型多数据源mybatis
- 三.SpringBoot集成实例系列-注解型单数据源mybatis
- Spring MVC代码实例系列-11:Spring MVC实现简单的权限控制拦截器和请求信息统计拦截器
- Mongodb 之 安全权限控制
- FPGA Verilog HDL 系列实例--------直流电机PWM控制
- SharePoint 2010 技巧系列: 控制Ribbon菜单权限(SiteActions的例子)
- 集成ACEGI 进行权限控制
- 通用权限管理模块系列——参考资料——RBAC即角色访问控制[转载]
- MongoDB 3.0+ 安全权限访问控制
- 姚博文 集成ACEGI 进行权限控制
- mongodb_创建用户_数据库实例_权限设置
- thinkphp集成系列之rbac的升级版auth权限管理系统demo
- 如何在自己的信息管理系统里集成第三方权限控制组件 - 设计一个漂亮的WEB界面
- 一步一步Asp.Net MVC系列_权限管理之权限控制
- Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程