首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 核心筆記:包機制、環境變量、訪問控制與 Maven Profile 多環境打包

     編輯:Java 相關知識

Java 基礎設施深度指南:從包結構到多環境構建

掌握 Java 包機制、環境變量配置、訪問控制矩陣與 Maven Profile 多環境打包,是從寫代碼走向工程化交付的關鍵跨越。

一、Java 包機制精要

  • 命名空間隔離:同名類可共存於不同包,如 com.a.User vs com.b.User
  • 編譯單位規則:package 聲明必須為非註釋首行;無聲明則屬默認包(不推薦)
  • 導入策略:優先單類導入(import com.a.User),避免通配符導入造成命名衝突與編譯緩慢
  • 目錄映射:包結構必須與文件系統目錄嚴格對應,src/main/java/com/example

二、三大核心環境變量詳解

變量作用典型配置
JAVA_HOMEJDK 安裝根目錄/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
PATH可執行文件搜索路徑追加 %JAVA_HOME%\bin (Win) / $JAVA_HOME/bin (Unix)
CLASSPATH類/資源文件搜索路徑.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (含當前目錄 .)

注意:現代構建工具(Maven/Gradle)與 IDE 內建管理 CLASSPATH,手動配置多見於舊項目或命令行編譯調試。

三、訪問控制權限矩陣

修飾符同類同包子類異包子類同包非子類異包非子類
public✓✓✓✓✓
protected✓✓✓✓✗
default✓✓✗✓✗
private✓✗✗✗✗

類級別:僅 public 與 default(包可見)。
最佳實踐:屬性 private + Getter/Setter;方法默認 private,按需放寬;避免 protected 洩露實現細節。

四、Maven Profile 多環境打包實戰

典型四環境:dev(開發)、qa(測試)、pre(預發)、prod(生產)。

POM 核心配置

<profiles>
  <profile>
    <id>dev</id>
    <properties><env>dev</env></properties>
    <activation><activeByDefault>true</activeByDefault></activation>
  </profile>
  <profile><id>qa</id><properties><env>qa</env></properties></profile>
  <profile><id>pre</id><properties><env>pre</env></properties></profile>
  <profile><id>prod</id><properties><env>prod</env></properties></profile>
</profiles>

<build>
  <filters><filter>config/${env}.properties</filter></filters>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>

資源文件結構

src/main/resources/
├── config/
│   ├── dev.properties      # jdbc.url=dev.db:3306
│   ├── qa.properties       # jdbc.url=qa.db:3306
│   ├── pre.properties      # jdbc.url=pre.db:3306
│   └── prod.properties     # jdbc.url=prod.db:3306
└── application.yml         # 引用 ${jdbc.url}

打包命令

mvn clean package -P dev    # 開發環境
mvn clean package -P prod   # 生產環境

進階技巧

  • 屬性文件分離敏感信息:數據庫密碼、API Key 放入 ~/.m2/settings.xml 或 CI/CD 秘密管理,不入版本庫
  • 多模塊傳遞:父 POM 定義 profiles,子模塊自動繼承
  • Spring Boot 整合:spring.profiles.active=@env@ 在 application.yml 中配合資源過濾
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved