您的位置:首页 > 其它

J2EE相关概念

2017-12-22 15:35 169 查看
JNDI:

个人理解,就是将要引用的外部资源写在配置文件里,由容器读取配置文件去获取资源,很多时候是基于反射动态加载对象资源,这样由硬编码转向了配置文件,系统更灵活。

直接使用JDBC硬编码(在程序中手动写Class.forName(“com.mysql.jdbc.Driver”, ……); Connextion conn=DriverManager.getConnection(“url?user=&password=”); )或者通过JNDI引用数据源(把硬编码参数提取到配置文件中)的编程代码量相差无几,但是现在的程序可以不用关心具体JDBC参数了。

在系统部署后,如果数据库的相关参数变更,只需要重新配置 mysql-ds.xml 修改其中的JDBC参数,只要保证数据源的名称不变,那么程序源代码就无需修改。

由此可见,JNDI避免了程序与数据库之间的紧耦合,使应用更加易于配置、易于部署。

JNDI的扩展:JNDI在满足了数据源配置的要求的基础上,还进一步扩充了作用:所有与系统外部的资源的引用,都可以通过JNDI定义和引用。

J2EE 规范要求所有 J2EE 容器都要提供 JNDI 规范的实现。JNDI 在 J2EE 中的角色就是“交换机” —— J2EE 组件在运行时间接地查找其他组件、资源或服务的通用机制。

在 J2EE 中,JNDI 是把 J2EE 应用程序合在一起的粘合剂,JNDI 提供的间接寻址允许跨企业交付可伸缩的、功能强大且很灵活的应用程序。这是 J2EE 的承诺,而且经过一些计划和预先考虑,这个承诺是完全可以实现的。

参考:http://blog.csdn.net/sunkobe2494/article/details/50824359


**Tomcat容器和Spring容器:

Java项目跟jvm进程数量没什么直接关系。通常我们用java 命令运行一个程序就会启动一个jvm进程,就是你所说的jvm实例。可以看看tomcat的启动脚本(非常复杂),但最终是通过一个java命令启动tomcat容器。webapp运行于tomcat容器基础之上,和tomcat同属于一个jvm进程是必然的。至于spring,容器的概念更多是逻辑上的,它仅仅是一个类(ApplicationContext,BeanFactory)的实例。web应用启动时加载一个WebApplicationContext实例,即我们所说的spring容器。**

参考:https://zhidao.baidu.com/question/358515728.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  j2ee