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日

相关文章

  • Linux下Java开发环境搭建以及第一个HelloWorld

    下面我将详细讲解在Linux操作系统下搭建Java开发环境以及创建第一个“Hello World”程序的完整攻略。 安装Java 首先,我们需要在Linux系统中安装Java。打开终端,输入以下命令来安装Java: sudo apt update sudo apt install default-jdk 这将使用apt包管理器更新软件包列表并安装默认的Jav…

    Java 2023年5月26日
    00
  • JAVA 对象创建与对象克隆

    JAVA 对象创建与对象克隆 在 Java 中,对象创建与对象克隆是非常重要的知识点。 对象创建 Java 中的对象常见的有以下几种创建方式: 使用 new 关键字 使用 new 关键字创建对象是最常见的一种方式,通过这种方式创建出来的对象是一个新的对象实例,具有独立的地址空间。例子如下: public class Person { private Stri…

    Java 2023年5月26日
    00
  • 实例解析Java的Jackson库中的数据绑定

    实例解析Java的Jackson库中的数据绑定 Jackson是Java平台领先的开源JSON(JavaScript Object Notation)处理库,它有着出色的性能和易用性,并且支持流式解析和生成JSON数据。Jackson提供了诸如JsonNode、ObjectMapper、ObjectReader、ObjectWriter等API来处理JSON…

    Java 2023年5月26日
    00
  • Java面试题冲刺第十天–MyBatis2

    Java面试题冲刺第十天–MyBatis2 MyBatis是一个优秀的ORM(Object Relational Mapping)框架,提供了自动将对象与关系数据库进行映射的功能,使得Java Web开发更加简单、高效。本篇文章主要介绍MyBatis的进阶使用和最佳实践。 一、MyBatis的关键特性 MyBatis的核心特性包括: 自动化的SQL映射。M…

    Java 2023年5月20日
    00
  • Spring Boot 定制与优化内置的Tomcat容器实例详解

    Spring Boot 定制与优化内置的 Tomcat 容器实例详解 前言 Spring Boot 是目前非常流行的 Java Web 开发框架。在 Spring Boot 中,内置了 Tomcat 容器,方便开发者快速搭建 Web 应用,然而默认配置下的 Tomcat 可能不太满足实际的需求。那么,如何对 Spring Boot 中的 Tomcat 进行定…

    Java 2023年5月19日
    00
  • JAVA内部类示例详解及练习

    下面我就来详细讲解一下“JAVA内部类示例详解及练习”的完整攻略。 什么是Java内部类 Java内部类(Inner Class)指的是定义在另一个类中的类。Java内部类可以分为四种类型:成员内部类、静态内部类、局部内部类、匿名内部类。其中,成员内部类是最常用的一种形式。 成员内部类示例 下面通过一个示例来详解一下成员内部类的定义和使用: public c…

    Java 2023年5月23日
    00
  • java实现读取、删除文件夹下的文件

    关于Java实现读取、删除文件夹下的文件的攻略,可以分为两个步骤:读取和删除文件。 1. 读取文件 Java中读取文件需要使用File类,它提供了各种方法来处理文件和文件夹。使用File类的方法之一是listFiles(),该方法用于获取在文件夹中的所有文件和文件夹的列表。我们可以使用该方法获得要操作的文件夹下面的所有文件或文件夹。 以下是一个读取文件夹下所…

    Java 2023年5月20日
    00
  • springboot 使用mybatis查询的示例代码

    以下是关于”springboot 使用mybatis查询的示例代码”的完整攻略: 1. 准备工作 在开始之前,我们需要做一些准备工作: Java JDK 1.8 及以上版本 Gradle 或者 Maven 等构建工具 MyBatis 3 + SpringBoot 数据库(本示例使用 MySQL) 这些工具和技术是开发这个示例所需的基本要素。如果你已经安装好了…

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