通过Docker辅助开发

什么是容器

认识Docker

不同眼人眼中的Docker
开发眼中的Dorcker
  • 简化了重复搭建开发环境的工作
运维眼中的Docker
  • 交付系统更为流程
  • 伸缩性更好
Docker常用命令
镜像生成
  • docker pull
  • docker search
容器相关
  • docker run
  • docker start/stop <容器名>
  • docker ps <容器名>
  • docker logs <容器名>
docker run的常用选项
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
选项说明
  • -d,后台运行容器
  • -e,设置环境变量
  • –expose / -p 宿主端口:容器端口
  • –name,指定容器名称
  • –link,链接不同容器
  • -v 宿主目录:容器目录,挂载磁盘卷
国内Docker 镜像配置
官方Docker Hub
  • https://hub.docker.com
官方镜像
  • 镜像 https://www.docker-cn.com/registry-mirror
  • 下载 https://www.docker-cn.com/get-docker
阿里云镜像
  • https://dev.aliyun.com
通过 Docker 启动 MongoDB
官方指引
  • https://hub.docker.com/_/mongo
获取镜像
  • docker pull mongo
    运行MongoDB镜像
  • docker run --name mongo -p 27017:27017 -v ~/docker-data/mongo:/data/db -e MONGO_INITDB_USERNAME=admin
  • -e MONGO_INITDB_ROOT_PASSWORD=admin -d mongo
通过Docker启动 MongoDB
登录到MongoDB 容器中
  • docker exec -it mongo bash
通过Shell 连接MongoDB
  • mongo -u admin -p admin

在 Spring 中访问 MongoDB

Spring 对 MongoDB 的⽀持
MongoDB是一款开源的文档型数据库
  • https://www.monoggodb.com
Spring对MongoDB的支持
  • Spring Data MongoDB
  • MongoTemplate
  • Repository 支持
Spring Data MongoDB的基本用法
注解
  • @Document
  • @Id
MongoTemplate
  • save / remove
  • Criteria / Query / Updte
初始化MongoDB的库及权限
创建库

use springbucks

创建用户
db.createUser({user: "springbucks",pws: "springbucks",roles: [{ role:"readWrite",db: "springbucks"}]}
)
Spring Data MongoDB的Repository
@EnableMongoRepository
对应接口
  • MongoRepository<T,ID>
  • PagingAndSorting<T,ID>
  • CrudRepository<T,ID>

实例代码

@Document
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Getter
@Setter
public class Coffee {@Idprivate String id;private String  name;private Money price;private Date createTime;private Date updateTime;
}public class MoneyReadConverter implements Converter<Document,Money> {@Overridepublic Money convert(Document source) {Document money = (Document) source.get("money");double amount = Double.parseDouble(money.getString("amount"));String currency = ((Document)money.get("currency")).getString("code");return Money.of(CurrencyUnit.of(currency),amount);}
}@SpringBootApplication
@Slf4j
@EnableMongoRepositories
public class TestmongodbApplication implements ApplicationRunner {@Autowiredprivate MongoTemplate mongoTemplate;public static void main(String[] args) {SpringApplication.run(TestmongodbApplication.class, args);}@Beanpublic MongoCustomConversions mongoCustomConversions() {return new MongoCustomConversions(Arrays.asList(new MoneyReadConverter()));}@Overridepublic void run(ApplicationArguments args) throws Exception {Coffee espresso = Coffee.builder().name("espresso").price(Money.of(CurrencyUnit.of("CNY"), 20.0)).createTime(new Date()).updateTime(new Date()).build();Coffee saved = mongoTemplate.save(espresso);log.info("Coffee{}", saved);List<Coffee> list = mongoTemplate.find(Query.query(Criteria.where("name").is("espresso")), Coffee.class);list.forEach(c -> log.info("Coffee {}", c));Thread.sleep(1000);UpdateResult result = mongoTemplate.updateFirst(Query.query(Criteria.where("name").is("espre    sso")),new Update().set("price", Money.ofMajor(CurrencyUnit.of("CNY"), 30)).currentDate("updateTime"),Coffee.class);log.info("Update Result:{}",result.getModifiedCount());Coffee updateOne = mongoTemplate.findById(saved.getId(), Coffee.class);log.info("Update Result: {}", updateOne);mongoTemplate.remove(updateOne);}
}

连接数据库地址
spring.data.mongodb.uri=mongodb://springbucks:springbucks@localhost:27017/springbucks

第四部分:NoSQL实践相关推荐

  1. python实训总结报告书_20172304 实验四python综合实践报告

    20172304 实验四python综合实践报告 姓名:段志轩 学号:20172304 指导教师:王志强 课程:Python程序设计 实验时间:2020年5月13日至2020年6月14日 实验分析 本 ...

  2. 《Python程序设计》实验四 Python综合实践实验报告

    <Python程序设计>实验四 Python综合实践实验报告 1.实验内容 Python综合应用:爬虫.数据处理.可视化.机器学习.神经网络.游戏.网络安全等. 在华为ECS服务器(Ope ...

  3. 计算机科学与技术学习路线编程基础四大件应用实践编程(含C++学习路线)

    计算机科学与技术学习路线&编程基础四大件&应用实践编程(含C++学习路线) 基本介绍 本人211科班出身,目前大学临近毕业,想给迷茫的同行者或者后来人一些建议和推荐,少走弯路.想想自己 ...

  4. Python程序设计与算法基础教程(第二版)微课版第四章上机实践答案

    Python程序设计与算法基础教程(第二版)微课版第四章上机实践答案 2. def generate(L) : #生成杨辉三角的 一行List = [1]for x in range(1,len(L) ...

  5. Python 程序设计与算法基础教程(第二版)第四章上机实践

    第四章上机实践部分参考答案 2.格式化杨辉三角 3.求直角三角形周长和面积 4.随机数 5.党费 6.袖珍计算器 7.判断三边构成三角形 8.鸡兔 9.计算e的x次方近似值 10.平方根 11.余数 ...

  6. 章节四:BeautifulSoup实践

    章节四:BeautifulSoup实践 目录 章节四:BeautifulSoup实践 1. 复习 2. 项目:解密吴氏私厨 3. 分析过程 4. 代码实现(一) 4.1 获取与解析 4.2 提取最小父 ...

  7. 数据湖是一种方法 数据湖的四个最佳实践

    数据湖听起来很简单:把数据或信息汇集到一个结合处理速度和存储空间的大数据系统――Hadoop集群或内存解决方案,那样业务部门就能访问数据,获取新的洞察力.不过,与IT行业的许多技术一样,现实比梦想困难 ...

  8. 音视频低延迟应用的四个技术实践

    低延时是音视频领域最常遇到的关键诉求,如何设计解决方案以满足低延时的应用场景至关重要,本文将基于低延时的解决方案和实例进行讲解,分享一些应用的实践,帮助开发者更快地将解决方案应用到产品中.内容来自即构 ...

  9. 视觉SLAM十四讲学习笔记-第四讲-Sophus实践、相似变换群与李代数

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

最新文章

  1. 慧算账全面升级,V2.2版本带来极致体验
  2. C++线性序列容器vector简单总结
  3. [转]SQL语句大全
  4. Worktile 技术架构概要
  5. android 从相册或相机获取图片并且裁剪 支持android 7.0
  6. 简历石沉大海、面试被刷?拒绝你的HR小姐姐,可能只是个AI
  7. linux之netstat使用--10个常用的命令
  8. 表单和iframe的使用
  9. windows多线程详解
  10. Pc端微信加群的测试用例
  11. Log4net 配置详解
  12. php resize函数,Php Image Resize图片大小调整的函数代码
  13. Atitit.软件仪表盘(0)--软件的子系统体系说明
  14. 清华 计算机系 赵晟,来看看2010年清华大学自动化系录取名单本科毕业学校
  15. 用docker跑机器学习环境
  16. 第一代程序员作家--王小波
  17. 剑客vs刀客 Java vs .NET
  18. ctab法提取dna流程图_CTAB法提取DNA原理及步骤、制胶、电泳
  19. 项目经理版《野狼disco》
  20. 计算机数值表示Integer

热门文章

  1. #千峰逆战,205#面向对象2.0
  2. 如何刷recovery
  3. root = Tk() 和 root = Tkinter.Tk() 区别
  4. XENAPP 7.6 和XENDESKTOP 7.6 初体验之一 安装
  5. [jzoj 5353] 村通网 {kruskal算法}
  6. 【源码篇】聊聊源码mybatis(更新分析)
  7. 35-文思海辉公司问题-info
  8. STEP7编程免驱动方式(METH-MPI-S2)
  9. 如何把单词批量导入金山词霸生词本?
  10. Eclipse+Java+Swing+Mysql实现医院挂号系统