type
status
date
slug
summary
tags
category
titleIcon
password
icon
calloutIcon
记录第一天开发环境搭建中遇到的问题与解决方案:虚拟机网络连接(防火墙配置);修改hosts域名访问;IDEA Maven代理配置;Maven单继承解决(多父工程);常量池问题(-128到127 Integer Long享元);bootstrap.yml配置;虚拟机快照;全局异常处理;Nginx域名解析配置
网络连接问题(见于MySQL等)
- 配置完虚拟机网络后,可能出现MySQL等无法连接上,基本都是防火墙的问题,以下展示windows解决方案。
防火墙配置
- 解决方法:仅对虚拟机的网络进行防火墙的关闭
- 步骤一:设置中搜索点开防火墙和网络保护

- 步骤二:选择高级设置

- 步骤三:选择windows defender防火墙属性

- 步骤四:对受保护的网络连接选择自定义

- 步骤五:取消勾选VMware虚拟机的网络连接

- 步骤六:重复直至完成对三个配置文件修改

修改hosts后无法使用域名访问
- 后续开发会大量访问部分服务,配置域名访问可以方便很多,在本地hosts配置完ip域名映射后,端口的寻找交给nginx处理,在hosts文件修改后,可能出现ip+端口可以正常访问,但是域名无法访问的情况,一般是代理设置的问题,以下展示Clash Verge的设置方法。
修改代理设置
- 步骤一:选择设置-系统代理边的小齿轮

- 步骤二:在弹出窗口中,填写代理绕过设置 *.tianji.com

IDEA Maven配置问题
为所有新项目设置
- 需要在New Projects Setup下修改Settings,直接修改的Settings仅适用当前项目

Maven仓库的代理设置
- 可以直接修改IDEA的HTTP Proxy来完成,也就不需要配镜像了

Maven单继承问题
设置scope为import
- 项目中需要同时继承spring-boot,spring-cloud,spring-cloud-alibaba,但由于maven是单继承,只能写一个parent标签(多写报错),可以在<dependencyManagement>下配置依赖,在type填写pom,在scope填写import,实现多继承的效果。


Integer与Long类型常量池问题
使用equals而不是==
- 对于Integer,Long包装类间比较应使用equals方法或者Objects类里的equals方法。Java的Integer与Long包装类使用了享元模式,对-128至127的部分使用共享对象,在使用==比较是否同一对象时,会在这一部分返回正确,并不是出现了自动拆箱(必须比较的其中一方是基本类型)。

其他注意事项
多拍虚拟机快照
- 多拍快照保存状态,可能比较占据空间,但可以有效防止虚拟机或镜像状态出错的情况(CentOS7已停止维护)。在推进全部流程的过程中,使用的16G的机器上偶有几次蓝屏的情况,其中一次就使得MySQL的Docker镜像处于无限重启的状态。

熟悉通用配置文件
- 实际工作项目的配置都是读取配置中心获取的,项目中采用Nacos,在对应shared-configs下是共享的配置的文件,后续作业里添加新配置时会用到。

多数情况不需要手动捕获异常
- 代码中有全局异常处理逻辑

域名访问
- 图为Nginx中域名解析配置项

了解更多
- 作者:CamelliaV
- 链接:https://camelliav.netlify.app/article/tjxt-day01?target=comment
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。