Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包

Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包

在Java中,包是用来管理和组织类的,可以避免类名重复和冲突。包名是由完整类名组成的,例如com.example.myapp。约定俗成的做法是让包名和域名一致。

如何定义包

在Java源代码的开头,使用package关键字来定义包,例如:

package com.example.myapp;

这个语句的意思是,该文件中的Java代码都属于com.example.myapp这个包。

如何使用包

在Java类中,可以使用import关键字引入其他包中的类。例如:

import java.util.ArrayList;

这个语句的意思是,在当前类中使用ArrayList时,可以直接写ArrayList,而不需要写全称java.util.ArrayList

另外,在类名不冲突的情况下,也可以使用通配符*来导入整个包。例如:

import java.util.*;

这个语句的意思是,导入java.util包中的所有类。

环境变量

环境变量是系统变量,用来存储系统信息,例如Java的安装路径。在Java开发中,经常需要用到环境变量。

如何设置环境变量

在Windows系统中,可以在“控制面板”->“系统和安全”->“系统”->“高级系统设置”->“环境变量”中设置环境变量。

在Linux或Mac系统中,可以在/etc/profile文件或用户目录下的.bashrc文件中设置环境变量。例如,在.bashrc文件中添加以下内容:

export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH

这个脚本的意思是,将/usr/local/jdk1.8.0_181设置为Java的安装路径,并将$JAVA_HOME/bin添加到系统的PATH变量中,以便系统能够找到Java命令。

如何使用环境变量

在Java代码中,可以使用System.getenv()方法获取系统的环境变量。例如:

String javaHome = System.getenv("JAVA_HOME");

这个代码的意思是,获取环境变量JAVA_HOME的值,并赋给变量javaHome

访问控制

在Java中,通过访问控制来控制类、变量和方法的访问权限。Java有以下4种访问修饰符:publicprotecteddefault(默认)和private

public

public修饰符可以被任何类访问。例如:

public class MyClass {
    public int x;
    public void myMethod() {
        System.out.println("Hello World!");
    }
}

这个类和它的公共成员(变量和方法)可以被任何类访问。

protected

protected修饰符可以被本类、同一包中的类和子类访问。例如:

protected class MyClass {
    protected int x;
    protected void myMethod() {
        System.out.println("Hello World!");
    }
}

这个类和它的受保护的成员(变量和方法)可以被本类、同一包中的类和子类访问。

default

default修饰符可以被本类和同一包中的类访问。如果没有修饰符,即为default。例如:

class MyClass {
    int x;
    void myMethod() {
        System.out.println("Hello World!");
    }
}

这个类和它的默认成员(变量和方法)可以被本类和同一包中的类访问。

private

private修饰符只能被本类访问。例如:

class MyClass {
    private int x;
    private void myMethod() {
        System.out.println("Hello World!");
    }
}

这个类和它的私有成员(变量和方法)只能被本类访问。

Maven profile实现多环境打包

Maven是一种自动化构建工具,可以通过配置和插件来管理项目的编译、打包、测试、部署等过程。Maven支持多环境打包,也即对不同的环境(开发、测试、生产)生成不同的包。实现方法是通过使用Maven的profile机制。

如何使用Maven profile

在Maven的pom.xml文件中,使用<profiles>元素来定义profile。例如:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <env>dev</env>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <env>test</env>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <env>prod</env>
        </properties>
    </profile>
</profiles>

这段代码的意思是,定义了3个profile(devtestprod),每个profile中都有一个env属性,分别设置为devtestprod

同时,在<build>元素中,使用<resources>元素来定义要打包的文件和目录。例如:

<build>
    <resources>
        <resource>
            <directory>src/main/resources/${env}</directory>
        </resource>
    </resources>
</build>

这段代码的意思是,在打包时,将src/main/resources/${env}目录中的文件打入包中。${env}将会被${env}属性的值替换。

示例

以下是一个完整的示例代码。

src/main/java/com/example/myapp/MyApp.java

package com.example.myapp;

public class MyApp {
    public static void main(String[] args) {
        System.out.println("Hello " + getEnv());
    }

    private static String getEnv() {
        return System.getenv("ENV");
    }
}

src/main/resources/dev/application.properties

message=Hello dev!

src/main/resources/test/application.properties

message=Hello test!

src/main/resources/prod/application.properties

message=Hello prod!

pom.xml

<project>
    <groupId>com.example</groupId>
    <artifactId>myapp</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources/${env}</directory>
            </resource>
        </resources>
    </build>

    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <env>test</env>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <env>prod</env>
            </properties>
        </profile>
    </profiles>
</project>

在命令行中使用以下命令,可以生成不同的包:

mvn package -P dev
mvn package -P test
mvn package -P prod

运行target/myapp-1.0-SNAPSHOT.jar,即可看到不同环境的输出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Android开发中的文件操作工具类FileUtil完整实例

    下面我会详细讲解“Android开发中的文件操作工具类FileUtil完整实例”的攻略,包含以下几个方面的内容: 简介 文件读取 文件写入 文件复制 文件删除 示例说明 结论 1. 简介 在Android开发中,文件操作时常遇到,因此可以写一个工具类封装常用的文件操作,方便进行文件操作。 2. 文件读取 使用FileInputStream对象打开文件,然后使…

    Java 2023年6月15日
    00
  • springboot打包不同环境配置以及shell脚本部署的方法

    SpringBoot打包不同环境配置以及Shell脚本部署的方法 在实际的应用中,我们需要针对不同的环境(如开发、测试、生产)进行配置,同时我们也需要使用Shell脚本一键部署以简化部署操作。 下面就以一个基础的Spring Boot应用为例,介绍一下如何实现不同环境配置以及Shell脚本部署。 1.不同环境配置 1.1 环境配置文件 首先,在resourc…

    Java 2023年5月20日
    00
  • Java 中的类和对象详情

    下面是Java 中的类和对象详情的完整攻略。 1. 什么是类和对象 Java 中的类是一个可以实例化的模板,描述了一组具有相同属性和方法的对象集合。在面向对象的编程中,类是创造对象的基础,包含了对象的定义和初始化信息。而对象则是类的一个实例化,是具有独立标识的实体。 2. 如何定义类 2.1 类的声明 类的声明由 class 关键字、类名、类体组成。类体包含…

    Java 2023年5月26日
    00
  • Java中三种简单注解介绍和代码实例

    Java中三种简单注解介绍和代码实例 什么是注解 注解是Java SE 5.0引入的新特性,它是一种元数据,提供有关程序代码的其他信息。它们可以一起编译到类文件中,也可以在运行时被读取和使用。开发人员可以使用注解在代码层次结构中添加元数据,这可以从源代码中读取,解析,编译,或者在运行时使用反射技术。 三种简单注解 Java中有三种最常见的内置注解:@Over…

    Java 2023年5月26日
    00
  • WINDOWS系统 + Apache +PHP5 +Zend + MySQL + phpMyAdmin安装配置方法

    安装和配置WINDOWS系统 + Apache + PHP5 + Zend + MySQL + phpMyAdmin的步骤如下: 步骤一:安装Apache 1.下载Apache的Windows版本,建议使用官方的Apache Lounge版本,下载地址https://www.apachelounge.com/download/ 2.解压缩下载的安装包。 3.…

    Java 2023年6月16日
    00
  • Windows 10上JDK环境安装配置图文教程

    下面是“Windows 10上JDK环境安装配置图文教程”的完整攻略: 1. 下载JDK安装包 首先,你需要下载JDK安装包。此步骤需要在Oracle官方网站上完成。 打开以下链接:https://www.oracle.com/java/technologies/javase-downloads.html 在“Java SE Downloads”页面中,找到…

    Java 2023年5月24日
    00
  • 一文搞懂Spring Security异常处理机制

    一文搞懂 Spring Security 异常处理机制 什么是 Spring Security 异常处理机制 Spring Security 异常处理机制是用于处理应用程序中出现的异常情况。当应用程序在处理安全性方面的问题时,Spring Security 可能会生成一些异常。这些异常表明了一些问题,例如未经验证的用户试图访问受保护的资源等等。 Spring…

    Java 2023年5月20日
    00
  • MyBatis-Plus如何最优雅最简洁地完成数据库操作

    MyBatis-Plus 如何最优雅最简洁地完成数据库操作攻略 MyBatis-Plus 是基于 MyBatis 的一款优秀的增强工具库,它可以帮助开发者简化操作、提升开发效率。下面,我们将详细介绍 MyBatis-Plus 如何最优雅最简洁地完成数据库操作。 一、如何引入 MyBatis-Plus 在 pom.xml 中添加如下 Maven 依赖: &lt…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部