从零到一:在M1 MacBook Pro上搭建全栈Java开发环境
1. 认识你的M1 MacBook Pro开发环境刚拿到M1芯片MacBook Pro的Java开发者首先要理解ARM架构带来的变化。M1芯片采用ARM64架构这与传统Intel处理器的x86架构有本质区别。简单来说就像汽油车和电动车虽然都是车但发动机原理完全不同。这种差异会导致部分软件需要专门适配才能发挥最佳性能。我刚开始用M1时犯过一个错误直接下载了x64版本的JDK结果运行时性能损失明显。后来发现所有开发工具都要优先选择标注Apple Silicon或ARM64的版本。好消息是现在主流开发工具基本都提供了原生ARM支持包括我们后面会用到的JDK、IDEA和MySQL。2. 安装和配置Java开发工具包(JDK)2.1 选择合适的JDK版本目前主流JDK发行版有Oracle JDK、OpenJDK和Azul Zulu等。对于M1用户我强烈推荐Azul Zulu的ARM64版本它在M1上的性能表现最优。安装过程很简单# 使用Homebrew安装Zulu JDK brew tap homebrew/cask-versions brew install --cask zulu-jdk21如果想管理多个JDK版本可以安装jenv工具brew install jenv echo export PATH$HOME/.jenv/bin:$PATH ~/.zshrc echo eval $(jenv init -) ~/.zshrc source ~/.zshrc # 添加已安装的JDK jenv add /Library/Java/JavaVirtualMachines/zulu-21.jdk/Contents/Home jenv global 21 # 设置默认版本2.2 环境变量配置技巧不同于传统方法直接修改.zshrc我建议使用更优雅的方式# 创建专用配置文件 mkdir -p ~/.config/java touch ~/.config/java/env # 在.zshrc中添加 echo source ~/.config/java/env ~/.zshrc这样可以把Java相关配置单独管理避免污染主配置文件。env文件内容示例export JAVA_HOME$(/usr/libexec/java_home -v 21) export PATH$JAVA_HOME/bin:$PATH3. 打造高效的IntelliJ IDEA开发环境3.1 安装和优化IDEA一定要下载标注Apple Silicon的版本性能差距可以达到30%。安装后有几个必做的优化修改内存设置Help Change Memory Settings建议设置为2048MB开启并行编译Preferences Build Compiler勾选Compile independent modules in parallel安装必备插件Lombok简化JavaBean开发Rainbow Brackets彩色括号匹配GitToolBox增强Git集成3.2 项目模板配置我习惯为不同类型项目创建模板。比如Spring Boot项目的模板配置!-- 在.idea/fileTemplates/internal/Project.xml -- template nameSpring Boot Project groupJava option nameJAVA_VERSION value21 / option nameSPRING_BOOT_VERSION value3.2.0 / option namePACKAGE_NAME valuecom.example / /template4. 构建工具Maven的深度配置4.1 安装和基础配置使用Homebrew安装Mavenbrew install maven创建~/.m2/settings.xml配置阿里云镜像加速mirror idaliyunmaven/id mirrorOf*/mirrorOf name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url /mirror4.2 高级技巧多仓库配置实际项目中经常需要连接多个仓库可以这样配置profile idmulti-repo/id repositories repository idcompany-repo/id urlhttps://repo.example.com/url /repository /repositories /profile激活配置mvn -P multi-repo clean install5. 数据库环境的搭建5.1 MySQL安装的最佳实践推荐使用Docker安装MySQL避免原生安装的兼容性问题docker run --name mysql8 \ -e MYSQL_ROOT_PASSWORDyourpassword \ -p 3306:3306 \ -v ~/docker/mysql/data:/var/lib/mysql \ -d mysql:8.0 \ --default-authentication-pluginmysql_native_password5.2 数据库管理工具选择除了Navicat还有几个不错的替代方案TablePlus轻量级且原生支持M1DBeaver开源免费功能全面JetBrains的Database插件与IDEA深度集成6. 实战从零创建全栈项目6.1 初始化Spring Boot项目使用IDEA的Spring Initializr创建项目时注意选择Java 21Spring Boot 3.2.x打包方式Jar依赖Web, Data JPA, MySQL Driver6.2 前端集成方案对于全栈开发我推荐两种方案纯前端分离使用ViteReact/Vue服务端渲染Thymeleaf或Freemarker以ViteReact为例创建前端项目npm create vitelatest frontend --template react cd frontend npm install然后在Spring Boot中配置静态资源映射Configuration public class WebConfig implements WebMvcConfigurer { Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(/**) .addResourceLocations(classpath:/static/) .addResourceLocations(file:frontend/dist/); } }7. 开发环境调优技巧7.1 终端环境配置iTerm2 Oh My Zsh是最佳组合。几个必备插件zsh-autosuggestions命令自动补全zsh-syntax-highlighting语法高亮gitGit命令缩写配置方法sh -c $(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh) git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions7.2 性能监控工具安装htop和glances实时监控系统资源brew install htop glances使用方式htop查看进程资源占用glances综合系统监控8. 常见问题解决方案8.1 原生库兼容性问题遇到no suitable image found错误时可以尝试# 查看库架构 file /path/to/library.dylib # 使用Rosetta转译 arch -x86_64 your_command8.2 端口冲突处理快速查找占用端口的进程lsof -i :8080 kill -9 PID或者使用更好的替代方案brew install nginx配置~/.nginx/nginx.conf实现端口转发。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2518953.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!