现在有很多种类的服务器, jboss, websphere , weblogic 等 但大部分的基础构架都是差不多的. 基本上都遵循现在最新的java ee 标准.
这是刚画的个图, 很多服务器介绍部分都有这样的图
- 系统启动: 引导内核部分. 提供应用环境上下文, 在环境上下文中提供核心功能模块组件. eg: 组件扫描 依赖注入(java ee 6) , jmx管理功能等部件, 现在基本上所有的内核为了安全和相互干扰等都提供了多路装载, 类似于ee7 准备提供的 osgi 功能.
- 应用组件装入: 应用组件被配置好后(application.xml, ejb-jar.xml, web.xml, jmx-...xml等)放入配置目录. 单独线程的组件扫描功能 不停扫描此目录, 监测到有新文件被部署, 提供新的classloader 装载之. 启用配置功能(ee 6标准). 根据配置() 获得所有ejb等组件, 启用依赖注入, 构建成组件. 根据标注(ejb ee5) 加入jndi 环境. 根据jmx信息加入jmx 控制部分. 加入相关jca(jndi等)(无顺序)
- 应用被调用: 从Jndi中获得相关等待模块并调用. 系统产生实现组件, 根据配置动态植入(aop)相关安全, 事物等信息, 从容器获得被加入的 jca 等相关资源. 然后返回.
所以服务器中一般需要配置的信息有:
- 模块配置信息
- ejb信息 容器注入信息(spring特有)
- jmx模块待管信息
- jca(jdbc)资源
- 应用组件信息(事物配置(transaction) 安全(sec))等