jndi通俗理解

看别人写的文章,对于刚接触jndi来说,理解还是有点困难的,主要我们不知道他们底层是怎么实现的,但是听了牛人给我们稍稍简介了一下,马上就顿悟了,下面我举一个例子。

 

1、我们用jboss配置数据库连接来说,我们是不是在xml文件中配置了URL USERNAME PASSWORD,当我们启动容器的时候,容器会为我们自动创建出这些对象,然后指定一个名字,通过名字来mapping 这个对象并且挂载到JNDI树上,因此,在jndi树上不允许出现相同的名字。

 

2、下面我以EJB为(例客户端访问一个session bean )画了一个图,你看了这个图就明白jndi起到什么作用了,呵呵(个人见解)

在 Java 里,耦合度可以用生活中搭积木的例子来理解。假如有一套积木,每块积木之间的连接方式和紧密程度就类似代码中模块间的耦合度。 如果每块积木都有特定的接口,只能和特定的另一块积木连接,这就好比代码中一个模块只能依赖另一个特定的模块,这种情况耦合度就高。比如在传统程序开发中,一个对象要使用另外的对象,就必须自己去创建(`new` 一个)或者从 JNDI 中查询一个,使用完后还得自己销毁,对象始终和其他的接口或类紧密关联,就像特定积木只能和特定积木相连,一旦其中一块积木损坏或者需要更换,会对整个搭建结构产生较大影响,对应到代码中也会导致修改某个模块时容易影响到其他依赖它的模块[1]。 相反,如果积木采用通用的接口,可以和很多不同的积木任意组合和拆分,就好像代码模块之间的依赖关系很松散,一个模块的变化不会对其他模块造成太大影响,这种耦合度就低。例如使用依赖注入,把对象的创建和依赖关系的管理交给其他组件(如 Spring 框架),这样模块之间的耦合度就降低了,不同模块可以更独立地开发、修改和维护[1]。 以下是一个高耦合和低耦合代码的简单示例: 高耦合代码: ```java class Engine { public void start() { System.out.println("Engine started"); } } class Car { private Engine engine = new Engine(); public void startCar() { engine.start(); } } ``` 在这个代码中,`Car` 类直接依赖于 `Engine` 类,并且自己创建了 `Engine` 对象,耦合度较高。 低耦合代码: ```java interface IEngine { void start(); } class GasEngine implements IEngine { @Override public void start() { System.out.println("Gas engine started"); } } class Car { private IEngine engine; public Car(IEngine engine) { this.engine = engine; } public void startCar() { engine.start(); } } ``` 在这个低耦合的例子中,`Car` 类通过构造函数接收一个实现了 `IEngine` 接口的对象,而不是自己创建具体的 `Engine` 对象,这样 `Car` 类和具体的发动机实现类之间的耦合度就降低了。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值