0
点赞
收藏
分享

微信扫一扫

maven父工程

Java旺 03-21 10:01 阅读 2
mavenjava

1.maven依赖

1.依赖配置: 

依赖是指当前项目运行所需要的jar,一个项目可以设置多个依赖

格式:在pom.xml中配置

<!-- 设置当前项目所依赖的所有jar-->
<dependencies>
    <!-- 设置具体的依赖-->
    <dependency>
        <!--依赖所属群组的id-->
        <groupId>junit</groupId>
        <!--依赖所属项目id-->
        <artfactId>junit</artfactId>
        <version>4.12</version>
    <dependency>
</dependencies>

2.依赖传递

依赖具有传递性

        直接依赖:在当前项目中通过依赖配置建立的依赖关系

        间接依赖:当前项目间接的依赖其他的资源

直接依赖和间接依赖都是相对的.

   <groupId>com.liusaidh</groupId>
   <artifactId>maven-project</artifactId>
   <packaging>pom</packaging>

前提:假定project1依赖project2

3.可选依赖:(project2不想让project1看到project2中的依赖)

指对外隐藏当前所依赖的资源--不透明

<!-- 设置project2所依赖的所有jar-->
<dependencies>
    <!-- 设置具体的依赖-->
    <dependency>
        <!--依赖所属群组的id-->
        <groupId>junit</groupId>
        <!--依赖所属项目id-->
        <artfactId>junit</artfactId>
        <version>4.12</version>
        <!--设置为true-->
        <optional>true</optional>
    <dependency>
</dependencies>

4.排除依赖(project1不想要project2中的依赖)

指主动断开依赖的资源,被排除的资源无需指定版本--不需要

<dependency>
      <groupId>com.liusaidh</groupId>
      <artifactId>project2</artifactId>
      <version>1.0-SNAPSHOT</version>
            <!-- 排除依赖-->
           <exclusions>
               <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
 </dependency>

5.依赖的范围(了解)

依赖的jar包默认在任何情况下都可以使用,可以通过scope标签限定它的使用范围

        主程序范围有效(main文件夹范围内)

        测试程序范围有效(test文件夹范围有效)

        是否参与打包(package指令范围内有效)

6.依赖范围的传递性(了解)

带有依赖范围的资源在进行传递时,作用范围将受到影响

2.equals和hashCode方法的区别与联系。

区别:(1)equals方法的效率相对于hashCode方法的效率较低,因为equals方法里比较全面、复杂,而hashCode方法只需要生成一个hash值进行比较即可

(2)equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的;hashCode()相等的两个对象他们的equal()不一定相等,也就是hashCode()不是绝对可靠的。

联系:equals和hashCode方法在java中都是比较两个对象是否相等,我们一般先用hashCode()进行比较,如果hashCode()相同,再用equal()验证,如果hashCode()都不同,则肯定不同,这样对比的效率就很高了。

3.请求转发和重定向

转发(Forward)是指在服务器内部将请求从一个组件(如 servlet 或控制器)传递到另一个组件。在转发过程中,浏览器并不知道请求被转发到了另一个组件,因为整个处理过程是在服务器端进行的。浏览器发送的初始请求的 URL 仍然保持不变,用户感知不到请求的实际目标组件。

重定向(Redirect)则是通过发送特定的 HTTP 响应状态码(通常是 301 或 302)和相应的 Location 头信息,告诉浏览器要重新发送一个新的请求到指定的 URL。浏览器会根据响应中的 Location 头信息自动发起新的请求,并更新地址栏中的 URL。重定向会导致浏览器发送一个全新的请求到新的 URL。

两者的主要区别在于:

1.用户感知:转发对用户是透明的,用户不会看到 URL 的变化。而重定向会让用户看到浏览器地址栏中的 URL 发生了改变。

2.请求次数:转发只涉及一次服务器端的请求处理,而重定向会导致浏览器发起新的请求,即两次请求。

3.数据共享:在转发过程中,请求参数和会话信息可以在服务器端自动传递到目标组件。而在重定向中,由于是新的请求,请求参数需要在 URL 中传递或者通过其他方式在新的请求中传递。

4.性能:一般来说,转发的性能比重定向要好,因为它避免了额外的网络请求。

举报

相关推荐

0 条评论