国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java隨手筆記8之包、環境變量和訪問控制及maven profile實現多環境打包

2019-11-26 14:49:08
字體:
來源:轉載
供稿:網友

一、java中的包

  Java利用包來組織代碼,一來使大型項目的代碼結構清晰,二來包是一個命名空間的劃分,即不同包中可以有相同名字的類,只需在在類名前加上包名即可區分它們。

  Package xxx 必須位于java文件除了注釋以外的第一行,用來指明當前文件中的類屬于哪一個包,如果沒有package語句,則該文件中的類都屬于默認包。

  Import xxx用來在當前java文件中導入不屬于當前包中的類,從而可以在當前文件中使用它們。

二、java中的環境變量

1.path

  環境變量其實就是一組變量(廢話),它的作用是給系統和應用程序提供參數。例如:path,它告訴系統和應用程序一些系統必備的程序的存儲位置,比如你要運行ipconfig命令,系統去哪里找它呢,就是通過path變量,把它所存儲的位置挨個找一遍,直到找到為止。

  在java中,當我們要運行java程序,在控制臺輸入java xxx時,java這個應用程序(exe文件)到哪里找呢?系統就得通過path,這樣就得把包含java這個應用程序的目錄拷貝到path環境變量中,這樣以后,再運行java xxx 就不會出現“‘java'不是內部或外部命令,也不是可運行的程序或批處理文件。”了。

2.classpath

  說完path,再來說說classpath,解決了java這個命令的問題,還有javac這個命令的問題,這里就牽扯到java中的包機制了。

  Java程序是由一個一個類構成的,類之間可以相互調用,還有一些java語言已經定義好的類,那么當程序要用到這些類的時候,去哪里找他們呢,這就需要classpath這個環境變量來指點迷津了。

  總結:classpath指明了類查找路徑,如果類沒有被打包,那就需要將其所在目錄添加到classpath中,如果類被打包為JAR文件,則需要將JAR文件的實際名稱寫清楚。

Classpath一般設置為“.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;”

  其中.代表當前目錄,%JAVA_HOME%代表java jdk的路徑。Dt.jar中主要是swing包中的各種控件類。Tools.jar中是各種工具類。

  當編譯器碰到import語句時,就開始在CLASSPATH所包含的目錄中查找。

  (參考:http://www.linuxidc.com/Linux/2012-01/52713.htm

3.JAVA_HOME

  指明jdk的路徑

三、訪問權限控制

1.類成員的訪問控制

訪問控制符:public/protected/包訪問權限(無關鍵字即默認)/private

 

類本身

同包中的子類

不同包中的子類

同包中的非子類

不同包中的非子類

      總之

public

可以

可以

可以

可以

可以

都可以

private

可以

不可以

不可以

不可以

不可以

僅自身可見

default

可以

可以

不可以

可以

不可以

僅同包可見

protected

可以

可以

可以

可以

不可以

子類或者同包可見

2.類的訪問控制權限

類只有兩種訪問控制權限:默認(即包訪問控制權限)和public

下面還有點時間,接著給大家介紹maven profile實現多環境打包

項目開發需要有多個環境,一般為開發,測試,預發,正式4個環境,通過maven可以實現按不同環境進行打包部署,命令為:
mvn package -P dev

其中“dev“為環境的變量id, 可以自己定義, 我定義的名稱為:dev,qa,pre,prod , 具體在pom.xml中的配置如下:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">   ......   <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> </project> 

1.profiles定義了各個環境的變量id
2.filters中定義了變量配置文件的地址,其中地址中的環境變量就是上面profile中定義的值
3.resources中是定義哪些目錄下的文件會被配置文件中定義的變量替換,一般我們會把項目的配置文件放在src/main/resources下,像db,bean等,里面用到的變量在打包時就會根據filter中的變量配置替換成固定值

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 信宜市| 博客| 河东区| 韶关市| 朝阳区| 潮州市| 安化县| 封开县| 互助| 申扎县| 遵义县| 乃东县| 萍乡市| 历史| 开化县| 太原市| 景德镇市| 德清县| 班玛县| 静乐县| 漳州市| 改则县| 安义县| 台南县| 连南| 阿拉善左旗| 祁阳县| 饶阳县| 白城市| 全州县| 泽库县| 汽车| 同德县| 萨嘎县| 八宿县| 泌阳县| 津南区| 津南区| 南丰县| 乌鲁木齐市| 福海县|