- 博客(35)
- 收藏
- 关注
原创 MessageSourceAware源码分析
`MessageSourceAware` 接口,主要用于对象希望被注入`MessageSource`。`MessageSource`是Spring中用于国际化(i18n)的接口,它提供了从不同的消息资源(例如:属性文件)获取消息的方法。使用`MessageSource`,我们可以为应用程序提供国际化的消息支持。
2023-10-18 23:03:29 366
原创 BeanClassLoaderAware源码分析
接口,允许 bean 得知其加载的类加载器。当一个 bean 实现了这个接口时,Spring 容器在 bean 初始化的时候会设置它的类加载器。
2023-10-18 22:57:30 284
原创 ResourceLoaderAware源码分析
`ResourceLoaderAware` 接口,它用于为需要访问 `ResourceLoader` 的 bean 提供一个回调。`ResourceLoader` 是一个简单的策略接口,定义了如何加载底层资源(如类路径或文件系统资源)的方法。
2023-10-18 21:54:12 139
原创 ImportAware源码分析
`ImportAware` 接口,提供被导入类的访问功能。当一个类实现了 `ImportAware` 接口,并且被通过 @Import 注解导入到其他配置类中,该类可以获得对导入它的 `AnnotationMetadata` 的访问权。
2023-10-18 21:48:33 136
原创 EnvironmentAware源码分析
`EnvironmentAware` 接口,允许Beans访问`Environment`对象。这是一个回调接口,当实现该接口的Bean被Spring容器管理时,Spring容器会为该Bean设置`Environment`对象。
2023-10-18 21:42:51 303
原创 EmbeddedValueResolverAware源码分析
`EmbeddedValueResolverAware` 接口,主要用于提供一个字符串值解析器,这可以在 Bean 属性中解析占位符和表达式。如果我们熟悉 Spring 的 `${...}` 占位符和 `#{...}` 表达式,那么这个接口将帮助我们在自定义组件中解析这些值。
2023-10-18 21:19:13 133
原创 BeanNameAware源码分析
`BeanNameAware` 接口。当一个 Bean 实现了此接口,可以感知其在 Spring 容器中的名称。
2023-10-18 21:18:41 99
原创 BeanFactoryAware源码分析
`BeanFactoryAware` 接口,允许 Spring bean 获得其所在的 `BeanFactory` 的引用。当一个 bean 实现了这个接口,Spring 容器在初始化该 bean 时,会自动调用 `setBeanFactory()` 方法,并传递一个 `BeanFactory` 实例。
2023-10-18 21:06:36 173
原创 ApplicationStartupAware源码分析
`ApplicationStartupAware`接口,是为了提供对这一过程的细粒度跟踪。通过`StartupStep`,我们可以定义应用启动过程中的各个步骤,并收集关于它们的性能和上下文信息。
2023-10-18 20:50:45 136
原创 ApplicationEventPublisherAware源码分析
`ApplicationEventPublisherAware` 接口,用于给需要发布应用事件的bean提供一个便捷的方式。实现此接口的bean可以接收到一个 `ApplicationEventPublisher` 的引用,这样它们就可以发布事件到 Spring 应用上下文中。
2023-10-18 20:38:12 283
原创 ApplicationContextAware源码分析
`ApplicationContextAware` 接口,允许我们访问当前的应用上下文 (`ApplicationContext`)。这通常在某些Spring bean需要访问应用上下文本身或其内部其他bean时会有用。
2023-10-18 20:32:53 133
原创 DisposableBean源码分析
`DisposableBean` 接口允许执行某些资源清理操作,比如我们可以使用这个接口来确保某些资源,比如文件句柄、网络连接、数据库连接等,被正确地释放或清理。
2023-10-15 18:21:02 206 1
原创 InitializingBean源码分析
`InitializingBean` 接口,主要用于在 bean 的所有属性被初始化后,但在 bean 被实际使用之前,执行某些初始化逻辑或设置。
2023-10-15 18:13:56 342 1
原创 SmartInitializingSingleton源码分析
`SmartInitializingSingleton`接口,用于bean初始化,当所有单例bean都已完全初始化后,用此接口进行回调。
2023-10-15 18:08:25 109 1
原创 DestructionAwareBeanPostProcessor源码分析
`DestructionAwareBeanPostProcessor` 接口,用于提供在 bean 销毁之前进行额外处理或操作的机会。其主要职责是在 bean 即将被销毁时允许执行自定义的逻辑。
2023-10-15 18:01:59 153 1
原创 SmartInstantiationAwareBeanPostProcessor源码分析
`InstantiationAwareBeanPostProcessor`。接口,能够对 Spring 容器创建的 beans 进行更精细的控制和更多的干预,尤其是在涉及代理和其他高级场景时。
2023-10-15 17:53:59 90 1
原创 MergedBeanDefinitionPostProcessor源码分析
`MergedBeanDefinitionPostProcessor` 是 Spring 框架中的一个接口,主要用于在 bean 定义被合并后(但在 bean 实例化之前)进行后处理。它扩展了 `BeanPostProcessor`,增加了处理合并 bean 定义的能力。
2023-10-15 17:42:05 186 1
原创 InstantiationAwareBeanPostProcessor源码分析
`InstantiationAwareBeanPostProcessor` 提供了在 bean 实例化之前和之后的回调。这意味着我们有机会在实际的目标 bean 实例之前返回一个代理,或者影响 bean 的构造。
2023-10-15 17:35:53 133 1
原创 BeanFactoryPostProcessor源码分析
`BeanFactoryPostProcessor` 是一个接口,任何实现此接口的类都必须提供`postProcessBeanFactory`方法的实现。此方法提供了一个机会,在bean实例化之前修改bean的定义。
2023-10-15 17:18:12 77 1
原创 BeanDefinitionRegistryPostProcessor源码分析
用于在 Spring 容器的标准初始化过程中允许我们修改应用程序上下文的内部 bean 定义。它继承自 `BeanFactoryPostProcessor` 接口。与 `BeanFactoryPostProcessor` 不同的是,它还提供了对 `BeanDefinitionRegistry` 的访问,这使得我们能够在运行时注册新的 beans 或修改现有的 bean 定义。
2023-10-15 17:10:10 114 1
原创 @Autowired注解源码分析
`@Autowired` 注解,用于实现依赖注入(Dependency Injection, DI)。当我们在 Spring 中定义了一个 Bean 并想要使用另一个 Bean 时,可以使用 `@Autowired` 注解来自动注入所需的 Bean,而我们无需手动查找和配置它。
2023-10-14 23:22:09 334 1
原创 @Value注解源码分析
`@Value` 注解,是一个非常有用的功能,它允许我们从配置文件中注入属性值到Java类的字段或方法参数中。这样,我们可以将配置和代码分离,使应用更容易配置和维护。
2023-10-13 17:33:20 264
原创 @Lazy源码分析
`@Lazy`注解,它的主要用途是延迟依赖注入的初始化。通常情况下,当 ApplicationContext 被启动和刷新时,所有的单例 bean 会被立即初始化。但有时,可能希望某些 bean 在首次使用时才被初始化。
2023-10-12 22:45:02 248
原创 @Conditional
`@Conditional`注解,是用来基于满足某些特定条件来决定一个Bean是否应该被注册到Spring容器的。这提供了一种灵活的方式来根据环境、配置或其他因素来决定是否激活或者创建某个Bean。
2023-10-12 22:38:29 64
原创 @DependsOn源码分析
`@DependsOn`注解,用于定义 Bean 初始化顺序。有时,我们可能会碰到某些 Bean 需要在其他 Bean 之前被初始化的情况。在这种情况下,我们可以使用 `@DependsOn` 注解来明确指定 Bean 的初始化顺序。
2023-10-12 22:30:51 265
原创 @PropertySource源码分析
`@PropertySource` 注解,用于指定外部的属性文件,从而将该文件中的键值对加载到 Spring 的 `Environment` 中。这样,我们就可以在应用程序中轻松地访问和使用这些属性值。
2023-10-12 22:18:05 92
原创 @Import源码分析
`@Import` 是 Spring 框架的核心注解,用于导入配置类或组件到当前的 Spring 上下文中。它可以用于导入常规的 `@Configuration` 类、常规组件类,或实现了 `ImportSelector` 和 `ImportBeanDefinitionRegistrar` 接口的类。`ImportSelector` 允许根据条件动态地选择要导入的组件,而 `ImportBeanDefinitionRegistrar` 提供了一种以编程方式注册bean的方法。
2023-09-11 14:38:20 137
原创 @Bean源码分析
`@Bean` 是 Spring 框架的核心注解,用于标记一个方法,表明这个方法返回值应被注册为 Spring 容器中的一个对象(Bean)。
2023-08-25 16:39:38 237 1
原创 @ComponentScan源码分析
`@ComponentScan` 注解,用于自动扫描特定包(和其子包)中的组件,并自动注册为 Spring 容器中的 bean。当我们使用 Spring Boot,它默认会扫描主应用程序所在的包以及子包。但是,如果我们需要更细粒度的控制,或者我们在使用传统的 Spring 而非 Spring Boot,那么我们可能会明确地使用 `@ComponentScan`。
2023-08-17 17:39:34 294 1
原创 @Configuration源码分析
`@Configuration` 是 Spring 框架中提供的一个核心注解,它指示一个类声明了一个或多个 `@Bean` 定义方法,这些方法由 Spring 容器管理并执行,以便在运行时为 bean 实例化、配置和初始化对象。
2023-08-10 16:40:58 465 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人