个人总结之jar包依赖和耦合

前言

  最近在接触新项目的时候,发现了一个小问题,我们先看下下面这张图:

  问题描述:在我的服务中引用了一个jar包,而这个jar中通过远程调用其他服务,但是改jar包本身没有读取RPC配置,需要在我的服务中为该jar包配置。通常对于我的服务来说,引用jar包对于其他服务的远程调用应该是透明的,如下图所示:

  到此,问题就产生了,我的服务到底应不应该为jar包配置RPC信息?我们先来从代码角度分类一下jar包。

1、完全体jar包

  此类jar包仅仅是java封装的一个体现,内部实现了一系列共用的方法,有自己独立的功能,换句话说就是该jar包帮你写了你想用的代码,如jdk自带的类都可以归为此类,只不过jdk自带的类不需要你手动引用而已

2、入侵式jar包

  此类jar包需要使用者去完善其中的某些信息,进而完成某一系列的功能,如数据库连接的jar包,需要使用者配置连接池的信息等;再比如spring的JdbcTemplate,抛出一个PreparedStatementCreator接口,让使用者通过实现类去完成SQL的参数绑定。这类jar包是java多态的一个表现,也可以理解成设计模式中的模板方法模式。

3、规范系jar包

  此类jar包只是一些列的模型和接口的定义,在面向服务编程的时代,任何服务的实现都不会直接暴露给使用者,取而代之的就是规范系的jar包,符合面向接口编程的规范

结论

  根据实际jar的情况进行选择,第一类jar包不在我们的考虑范围;对于第二类jar包,我们则需要进行配置;但对于第三类jar包,每个服务应该都自己独立的体系,各个服务直接耦合性很低,彼此直接不应该有任何相关联的配置。如果我引用的jar包是第二类,那么我需要为其配置RPC信息,否则不要为它擦屁股!

时间: 2024-10-01 03:38:11

个人总结之jar包依赖和耦合的相关文章

maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理

maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF

工作积累(十)——maven排除相关jar包依赖

在 maven 工程中引用到了一个 jar 包 commons-io-2.4.jar,由于被引用的 jar 包依赖 hibernate-jpa-2.0-api ,而 hibernate-jpa-2.0-api 存在 bug ,会报出 Error: java.lang.NoSuchMethodError:javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey; 或 java.lang.NoSuchMethodEr

Failed to read artifact descriptor for xxx:jar 的Maven项目jar包依赖配置的问题解决

在开发的过程中,尤其是新手,我们经常遇到Maven下载依赖jar包的问题,也就是遇到“Failed to read artifact descriptor for xxx:jar”的错误. 对于这种非业务相关的问题,耽误时间非常不效率,而且网上的解决思路过于老套,而且还没什么用. 1)要么就是,删除仓库内对应依赖的文件夹,右单击项目,Maven4MyEclipse->Update Project,在弹出的对话框中选择“Force Update Of Snapshots/Releases",

maven添加jar包依赖

maven的东西使用了一段时间,但是每次使用都多少有点含糊,所以总结一下. 目前主要使用是在jar包的控制上 原理: 在本地,指定一个文件夹,便是maven的仓库,maven会从远程的中央仓库中下载你需要的jar资源到你本地,然后通过maven关联,讲jar包依赖到你的项目中,避免了你需要将jar包拷贝到lib中,并通过classpath引入这些jar包的工作. 使用优点: 方便添加项目依赖的jar包,比如,你需要使用spring-mvc,那么,你必须引入spring-mvc及其相关的所有jar

maven 如何给web项目添加jar包依赖

maven 如何给web项目添加jar包依赖 CreateTime--2018年4月19日19:06:21 Author:Marydon 开发工具:eclipse 1.打开pom.xml文件-->切换到pom.xml视图--> 2.在build标签上,创建dependencies标签,jar包的引入都放到该标签内: 3.查看项目都引用了哪些jar包:src/main/webapp/WEB-INF/lib,然后将下面的jar包一个一个的从maven资源库中http://mvnrepository

Maven pom.xml 添加本地jar包依赖以及打包方法

Maven项目打包时,如果遇到需要添加本地jar包依赖的时候,可以选择两种方法: 1. 安装到本地仓库 第一种方法比较常规,适用于需要添加的jar包也是由maven项目导出,含有pom文件的时候.只需要将jar包安装到本地maven仓库下,然后添加依赖即可. (1)安装到本地仓库,执行以下命令(其中的-Dfile/-DgroupId/-DartifactId/-Dversion项根据pom文件内容填写): mvn install:install-file -Dfile=xxxxx.jar -Dg

对Tomcat启动或运行时,项目对jar包依赖路径的一些粗浅认知

Tomcat在运行webapp项目的时候,需要各种依赖jar包.它会从2个地方去找这些包 1.Tomcat自己的lib目录中 2.webapp目录中,webapps\{项目}\WEB-INF\lib 中 特别注意,默认情况下,需要把依赖的jar包放在lib的根目录中,不能在lib目录中新建目标并且把jar放在新建目录中,这样会导致tomcat无法找到该jar包而程序报错 全局的通用jar包可以放入tomcat的lib中,但如果是项目专用,一般还是建议放在项目的lib目录里

本地jar包依赖和运行包

1.pom依赖本地jar包方式 <dependencies> <dependency> <groupId>hsf-impl</groupId> <artifactId>hsf-impl</artifactId> <version>1.0-SNAPSHOT</version>             <scope>system</scope> <systemPath>D:/li

项目jar包管理,使用 .userlibraries 文件增加jar包的可移植性,明确jar包依赖,多项目共用jar包里

当一个普通的项目,在不适用maven 等jar包管理工具的时候,通常我都会直接把jar 包复制lib下,并且在build path 中直接添加额外jar包,或者使用user_libraries包所用的jar包 都放到一个文件夹里,然后让项目依赖该user_libraries 包.如果我又新建了一个项目,但是只有部分jar 包不一样或者版本不一样,通常我会再次新建一个文件夹把这些jar 放进去, 如果jar包出现问题我要一个个去翻看lib下的文件,看着很不方便,也不方便管理. 有没有像maven