- 生命周期的管理:即容器应该将受管对象的创建或者销毁从用户身上抽象出来,同时还应该对这些受管的资源进行精细的管理
- 查找服务:就当是一个工厂吧,想要什么就到里面找,容器可以很精确且方便的找
- 配置管理:将配置信息游离到JAVA代码之外
- 依赖决议:就是说可以很好的处理不同的受管对象的关联
- 企业级服务:这里的服务就是事务服务和声明性服务
- 线程管理:当外部访问容器对象时,容器可以为它提供一个线程
- 对象池:速度
- 集群服务:支持不同的容器之间的整合
- 管理:JMX
- 远程服务:RMI/IIOP vs soap
- 可定制性和扩展性:为受管对象提供定制服务,就像我们可以做一些检查
而作为轻量级的容器,有应该有以下的特征:
- 不要给应用强加对窗口的依赖
- 可以快速的启动
- 不需要什么特殊的部署步骤
- 不要过多依赖API,越少越好,最好是纯JAVA
- 将对象交给窗口管理时,开销很小
其实,也可以这样想容器有时也可以这样认为:借助JNDI定位机制实现的一个工厂
为什么要容器:
- 它实现了将实现与用户调用分离开
- 前面讲到的查找
- 由容器找到相应的服务
其实,容器就是把所有资源整合到一起,加入一些规则,最终达到统一管理。