springboot整合mongodb
1.mongodb的下载与安装(centos7)
1.下载解压
//来到根目录路下
#cd ~
//创建文件夹,用于存放安装的软件
#mkdir modul
//下载
#wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
//解压
#tar -zxvf mongodb-linux-x86_64.0.0.tgz
//改名
#mv mongodb-linux-x86_64.0.0.tgz mongodb
2.配置mongodb
#cd mongodb
//创建存放数据的位置
#mkdir db
//创建存放日志的位置
#mkdir logs
#cd bin
// 创建一个新的配置文件mongo.cnf
#vim mongo.cnf
//内容如下
--------------------------------
dbpath=/modul/mongodb/db
logpath=/modul/mongo/logs/mongodb.log
port=27017
fork=true
3.启动和关闭
现在还是bin目录下
#./mongod -f mongo.cnf --bind_ip_all
#./mongodb
//默认会使用test库,如果要退出我们需要切换到admin库
#use admin
#db.shutdownServer();
#exit;
4.安全管理
为mongodb的库配置密码,加强安全,要配置密码,首先要创建一个用户,我们需要在admin库中创建一个用户,并为他分配角色,权限,以及对哪一个库的权限。
#use admin;
//新建的用户名为zfc,密码为123 roles代表角色,这里配置的表示此用户对test库具有读写权限
#db.createUser({user:"zfc",pwd:"123"},roles:[{role:"readWrite",db:"test"}])
//创建完后,我们需要关闭mongodb, 重新启动
#./mongo
#db.auth("zfc","123")
//如果结果为1,代码认证成功(默认是test库)
2.springboot整合mongodb
1.添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2.配置mongodb
#配置要验证信息的库
spring.data.mongodb.authentication-database=admin
#配置要连接的库
spring.data.mongodb.database=test
#配置mongodb连接地址和认证信息
spring.data.mongodb.host=118.89.235.127
spring.data.mongodb.port=27017
spring.data.mongodb.username=zfc
spring.data.mongodb.password=123
server.port=8081
3.创建实体类,dao,controller
@Data
public class Book {
private Integer id;
private String name;
private String author;
}
-------------------------------------
//MongoRepository 类似于springdata jpa的repository
public interface BookDao extends MongoRepository<Book,Integer> {
}
--------------------------------------
//springdata mongodb 提供了mongoTemplate,就想springbot-start-redis提供的redisTemplate,如果自己没有定义,springboot会自动注册一个。mongoTemplate中封装了一些操作。
@RestController
public class BookController {
@Autowired
BookDao bookDao;
@Autowired
MongoTemplate mongoTemplate;
@GetMapping(value = "/testmongo")
public void testmongo(){
Book book = new Book();
book.setName("老子");
book.setAuthor("道德经");
book.setId(1);
bookDao.save(book);
}
@GetMapping("/testmongoget")
public void getBook(){
List<Book> book = mongoTemplate.findAll(Book.class);
System.out.println(book.toString());
}
}