事件驱动架构
事件驱动架构,通常指使用消息队列的异步架构。通常是应用在模块之间或服务之间的写操作,目的是实现依赖解耦。
使用消息队列实现异步架构是目前互联网应用系统中一种典型的架构模式。
除了使用 java -jar 运行 Spring Boot 应用程序之外,还可以为 Unix 系统制作完全可执行的应用程序。
完全可执行的 jar 可以像任何其他可执行二进制文件一样执行,也可以使用 init.d
或 systemd
注册。
这有助于在常见的生产环境中安装和管理 Spring Boot 应用程序。
现实环境是有些甲方的物理服务器是Widnwos系统,还不能切换Linux,就必须在 Windows 运行 Java 程序,cmd 的控制台窗口很容易被误关闭,需要把 Java 程序注册为 Windows 随机启动。
UTF-8编译的 Java 应用程序,在 Windows 运行,指定了文件编码为 UTF-8 ,控制台显示的中文仍乱码。
右键 cmd 控制台 > 属性,可以看到当前代码页为:936 (简体中文 GBK),该代码只能显示 GBK 编码的中文。
或直接在控制台输入 chcp 命令,会输出当前:【活动的代码页:936】
需要通过 chcp 命令修改代码页,chcp 65001。(65001为UTF-8的代码页)
Windows 中 运行 Java 程序脚本新建一个 startup.bat
文件,内容如下。
1 | title xxx-server |
Maven 本质上是一个插件执行框架; 所有工作都由插件完成。
软件开发行业共识,应该将复杂的软件进行拆分,拆成多个低复杂度的子系统,子系统还可以继续拆分成更小粒度的组件。即软件需要进行模块化,组件化设计。
Java 开发依赖的一个个 Jar 包就是组件。
MySQL数据库,一个更 UPDATE 更新用到了 group_concat 函数,报:Row XXX was cut by GROUP_CONCAT() 的错误,但单独的查询没有报错。
错误含义是:GROUP_CONCAT 有最大的长度限制,超过最大长度就会被截断掉。由 group_concat_max_len 系统变量限制最大长度,其默认值为 1024。
MySQL 根据子句进行条件更新或删除时,报如下错误:You can’t specify target table for update in FROM clause
错误意思是指:在同一语句中,update 和 select 子句不能是同一个表。
解决方式:需要把 SELECT 条件子句的结果集转为中间临时表,此临时表会依赖于 SELECT 条件子句驱动表。
IDEA 的 Ctrl+Shift+F 是全文或全项目搜索搜索快捷键,非常好用。
当这个快捷键偶而会失效时,基本可以确定是快捷键冲突了。
Intellij IDEA 2022 增加了一些新的特性,有一些是不想要,要关闭的;一些要启用需要配置。