一、内部容器:编程语言级容器
1. Java集合框架容器
定义:Java内置的数据结构容器,用于存储和管理对象集合
1.1 List(列表容器)
功能特性:
有序集合,允许重复元素
提供索引访问(从0开始)
常用实现类:ArrayList、LinkedList
核心操作:
List
list.add("Java");
list.get(0); // 访问元素
list.remove(1); // 删除元素
应用场景:
需要保持插入顺序的集合
频繁随机访问元素的场景
1.2 Set(集合容器)
功能特性:
无序集合,元素不可重复
基于equals()和hashCode()判断唯一性
常用实现类:HashSet、TreeSet
核心操作:
Set
set.add(100);
set.contains(100); // 检查存在性
应用场景:
去重存储
快速成员检查
1.3 Map(映射容器)
功能特性:
键值对存储结构
键唯一,值可重复
常用实现类:HashMap、ConcurrentHashMap
核心操作:
Map
map.put("key", "value");
Object value = map.get("key");
应用场景:
快速键值查找
缓存实现
二、Web容器
2. Servlet容器
定义:运行Servlet/JSP的运行时环境,实现JavaEE Web规范
2.1 Apache Tomcat
核心功能:
处理HTTP请求响应
管理Servlet生命周期(init()/service()/destroy())
JSP编译执行
会话管理(JSESSIONID)
架构组成:
graph TD
A[Connector] --> B[Engine]
B --> C[Host]
C --> D[Context]
D --> E[Wrapper]
配置示例:
connectionTimeout="20000" redirectPort="8443" /> 2.2 Eclipse Jetty 特性优势: 轻量级(核心Jar仅约2MB) 嵌入式部署能力 高并发处理性能 嵌入示例: Server server = new Server(8080); ServletContextHandler context = new ServletContextHandler(); context.addServlet(HelloServlet.class, "/hello"); server.setHandler(context); server.start(); 三、应用服务器(外部容器) 3.1 Jakarta EE应用服务器 定义:完整的JavaEE规范实现,提供企业级服务 3.1.1 WildFly 核心服务: EJB容器(分布式事务支持) JMS消息服务 JPA持久化管理 安全管理(JAAS) 模块架构: +-----------------+ | Web Layer | +-----------------+ | Business Layer | +-----------------+ | Data Layer | +-----------------+ | Container Core | +-----------------+ 3.1.2 WebLogic Server 企业级特性: 集群与故障转移 动态域配置管理 与Oracle数据库深度集成 可视化监控控制台 部署流程: 打包EAR文件 通过Admin Console部署 配置数据源与JNDI 启动应用实例 四、依赖注入容器 4.1 Spring IoC容器 定义:管理对象生命周期与依赖关系的核心组件 4.1.1 BeanFactory 核心机制: 延迟初始化Bean 基本的依赖注入 配置文件解析(XML) 配置示例: 4.1.2 ApplicationContext 增强功能: 事件发布机制 国际化支持 资源加载抽象 AOP集成 注解驱动: @Configuration @ComponentScan("com.example") public class AppConfig { @Bean public DataSource dataSource() { return new HikariDataSource(); } } 五、容器化技术 5.1 Docker容器 定义:轻量级操作系统级虚拟化技术 5.1.1 核心功能 镜像管理: docker build -t myapp:1.0 . docker push myregistry.com/myapp:1.0 容器运行: docker run -d -p 8080:8080 --name app myapp:1.0 功能特性: 文件系统隔离(Union FS) 资源限制(CPU/Memory) 网络命名空间隔离 可移植的运行时环境 5.2 Kubernetes容器编排 定义:自动化容器部署、扩展和管理的平台 5.2.1 核心组件 Pod:最小调度单元,包含多个容器 Deployment:声明式更新管理 Service:网络服务抽象 Ingress:外部流量管理 5.2.2 编排示例 apiVersion: apps/v1 kind: Deployment metadata: name: webapp spec: replicas: 3 selector: matchLabels: app: web template: metadata: labels: app: web spec: containers: - name: web image: nginx:1.21 ports: - containerPort: 80 六、容器技术对比矩阵 容器类型 典型代表 核心功能 适用场景 集合容器 ArrayList 数据存储与基本操作 内存数据结构管理 Web容器 Tomcat Servlet/JSP运行环境 传统Web应用部署 应用服务器 WildFly 企业级服务支持 复杂分布式系统 IoC容器 Spring Container 依赖注入与Bean生命周期管理 现代Java应用开发 容器化平台 Docker 应用环境隔离与打包 微服务部署与持续集成 容器编排系统 Kubernetes 集群资源调度与管理 大规模容器化应用运维 结语: 现多层次容器技术的协同应用,构建起从代码编写到云端部署的完整技术链条,推动着软件工程向更高效率、更强健壮性方向持续演进。