周志明的软件架构课
周志明
博士,远光软件研究院院长,《深入理解 Java 虚拟机》《凤凰架构》等书作者
54204 人已学习
免费领取
课程目录
已完结/共 74 讲
架构师的视角 (24讲)
周志明的软件架构课
15
15
1.0x
00:00/00:00
登录|注册

63 | 基于Spring Boot的单体架构

你好,我是周志明。
单体架构是 Fenix's Bookstore 服务端的起始版本,它与后面的基于微服务(Spring Cloud、Kubernetes)、服务网格(Istio)、无服务(Serverless)架构风格实现的其他版本,在业务功能上的表现是完全一致的。
所以,如果你不是针对性地带着解决某个具体问题、了解某项具体工具或技术的目的而来,而是有比较充裕的时间,希望了解软件架构的全貌与发展的话,我就推荐你从这个工程入手,来探索现代软件架构。因为单体架构的结构相对来说比较直观和易于理解,这对后面要接触的其他架构风格,也可以起到良好的铺垫作用。

运行程序

好,同样地,我们可以根据以下几种途径来运行程序,看看它的最终效果是怎么样的。
通过 Docker 容器的方式运行:
$ docker run -d -p 8080:8080 --name bookstore icyfenix/bookstore:monolithic
然后在浏览器访问:http://localhost:8080,系统预置了一个用户(user:icyfenix,pw:123456),你也可以注册新用户来测试。
这里默认会使用 HSQLDB 的内存模式作为数据库,并在系统启动时自动初始化好了 Schema,完全开箱即用。但这同时也意味着当程序运行结束时,所有的数据都不会被保留。而如果你希望使用 HSQLDB 的文件模式,或者其他非嵌入式的独立的数据库支持的话,也是很简单的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

该文章介绍了基于Spring Boot的单体架构,作为Fenix's Bookstore服务端的起始版本。文章提到了如何运行程序,包括通过Docker容器、Git源码以Maven运行以及在IDE环境中运行。同时,文章还介绍了使用的技术组件,包括RESTFul服务、依赖注入、持久化、数据验证和Web访问等。此外,文章还对工程结构进行了详细的解释,包括Resource、Application、Domain和Infrastructure四层。最后,文章提到了工程代码部分采用Apache 2.0协议进行许可。整体而言,该文章对基于Spring Boot的单体架构进行了全面的介绍,适合想要了解现代软件架构的读者。

该试读文章来自《周志明的软件架构课》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 天草二十六
    查询哪里来的事务
    2021-05-24
    2
    3
  • Demon.Lee
    查阅源码,比较了老师的目录结构和自己的目录结构,后续项目按照老师的风格调整。 偶然发现自己控制事务,是将@Transactional注解放在涉及修改数据的方法上,如果是查询方法,则不配置该注解,一直也没发现有问题,而老师是直接放在整个applicationservice类上(也就是所有方法都显示开启事务)。我的查询方法不加注解,如果一个接口内部查询多次数据库(以mysql为例,假设autocommit=0,isolation-level=Read-Committed),其实还是一个事务,只不过线程结束后,断开连接(目前一般用的是数据库连接池,断开相当于将连接归还给连接池)相当于回滚了,不知道我理解的对不对,请老师指正。
    2021-04-20
    2
    3
  • 码小呆
    学习看看大佬的项目结构
    2022-05-25
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部