源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-07-11 13:19 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包
一、java中的包   Java利用包来组织代码,一来使大型项目的代码结构清晰,二来包是一个命名空间的划分,即不同包中可以有相同名字的类,只需在在类名前加上包名即可区分它们。   Package xxx 必须位于java文件除了注释以外的第一行,用来指明当前文件中的类属于哪一个包,如果没有package语句,则该文件中的类都属于默认包。   Import xxx用来在当前java文件中导入不属于当前包中的类,从而可以在当前文件中使用它们。 二、java中的环境变量 [b]1.path[/b]   环境变量其实就是一组变量(废话),它的作用是给系统和应用程序提供参数。例如:path,它告诉系统和应用程序一些系统必备的程序的存储位置,比如你要运行ipconfig命令,系统去哪里找它呢,就是通过path变量,把它所存储的位置挨个找一遍,直到找到为止。   在java中,当我们要运行java程序,在控制台输入java xxx时,java这个应用程序(exe文件)到哪里找呢?系统就得通过path,这样就得把包含java这个应用程序的目录拷贝到path环境变量中,这样以后,再运行java xxx 就不会出现“‘java'不是内部或外部命令,也不是可运行的程序或批处理文件。”了。 [b]2.classpath[/b]   说完path,再来说说classpath,解决了java这个命令的问题,还有javac这个命令的问题,这里就牵扯到java中的包机制了。   Java程序是由一个一个类构成的,类之间可以相互调用,还有一些java语言已经定义好的类,那么当程序要用到这些类的时候,去哪里找他们呢,这就需要classpath这个环境变量来指点迷津了。   总结:classpath指明了类查找路径,如果类没有被打包,那就需要将其所在目录添加到classpath中,如果类被打包为JAR文件,则需要将JAR文件的实际名称写清楚。 Classpath一般设置为“.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;”   其中.代表当前目录,%JAVA_HOME%代表java jdk的路径。Dt.jar中主要是swing包中的各种控件类。Tools.jar中是各种工具类。   当编译器碰到import语句时,就开始在CLASSPATH所包含的目录中查找。   (参考:[url=http://www.linuxidc.com/Linux/2012-01/52713.htm]http://www.linuxidc.com/Linux/2012-01/52713.htm[/url]) 3.JAVA_HOME   指明jdk的路径 三、访问权限控制 [b]1.类成员的访问控制[/b] 访问控制符:public/protected/包访问权限(无关键字即默认)/private

 

类本身 同包中的子类 不同包中的子类 同包中的非子类 不同包中的非子类       总之
public 可以 可以 可以 可以 可以 都可以
private 可以 不可以 不可以 不可以 不可以 仅自身可见
default 可以 可以 不可以 可以 不可以 仅同包可见
protected 可以 可以 可以 可以 不可以 子类或者同包可见

[b]2.类的访问控制权限[/b] 类只有两种访问控制权限:默认(即包访问控制权限)和public [b]下面还有点时间,接着给大家介绍maven profile实现多环境打包[/b] 项目开发需要有多个环境,一般为开发,测试,预发,正式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中的变量配置替换成固定值
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部