1. 容器相关
Spring核心容器中的容器是指容器对象,用于管理和装配Bean。它主要包含以下四个容器:
BeanFactory容器:是最简单的容器,提供实例化、配置和管理对象的基本功能,但不提供AOP、事务管理等高级功能。
ApplicationContext容器:是一个更高级的容器,除了提供BeanFactory的所有功能外,还提供诸如AOP、事务管理、国际化等更高级别的功能。
WebApplicationContext容器:用于在Web应用程序中使用Spring,它扩展了ApplicationContext容器,包括了针对Web的特殊功能,例如Web安全、MVC、REST等。
EmbeddedWebApplicationContext容器:是Spring Boot中的一种特殊的ApplicationContext容器,用于支持嵌入式Web应用程序,提供诸如自动配置、嵌入式服务器等功能。
2. bean相关
Spring核心容器中的Bean是指被容器管理和装配的Java对象。Spring提供了众多方式来创建和注入Bean,其中最常见的方式是使用XML配置、Java配置或者注解方式,将Bean声明在容器中,并由容器负责创建、装配和管理。Bean的作用范围可以是Singleton、Prototype、Request、Session、Global
Session等,而且还可以添加各种操作Bean的监听器、过滤器、拦截器等。一些常用的Bean包括:
Service Bean:实现业务逻辑的Bean,如处理用户请求、进行计算、访问数据库等。
DAO Bean:用于访问数据库,通常使用Spring的JDBC模板或者ORM框架进行操作。
Controller Bean:用于处理Web请求,通过注解方式或者Spring MVC框架进行声明和注册。
Utility Bean:提供一些常用工具方法的Bean,例如日期格式化、数学计算、字符串处理等。
Configuration Bean:用于配置Spring应用程序的Bean,例如数据源、缓存、事务管理等。
Bean的使用非常灵活,可以根据具体的场景进行设计和使用,它们是Spring应用程序中的基本构建块。
3. 依赖注入相关
Spring的核心容器中的依赖注入(Dependency
Injection,DI)是指将一个对象所依赖的其他对象通过容器自动注入的过程。当一个对象依赖于其他对象时,传统的做法是在该对象内部创建依赖对象。但是这种方式会导致对象之间高度耦合,不易测试和维护。DI通过外部配置的方式,将依赖对象注入到对象属性中,最终实现松耦合的效果。Spring提供了多种注入方式,其中最常见的有构造器注入、属性注入和接口注入。构造器注入将依赖对象通过构造方法传入,属性注入则是通过setter方法注入属性,而接口注入则是通过实现接口注入。同时,Spring还支持自动装配,从而避免手动配置注入的麻烦。自动装配可以根据类型、名称、注解等多种方式,自动注入依赖对象。
Spring的DI可以极大地降低开发和维护的难度,使得对象之间的耦合度得到解耦。通过DI,对象只需要关注自己的业务逻辑,而不用关注如何依赖其他对象,这样可以提高代码的重用性和可读性,减少代码冗余。