一緒に書く習慣をつけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して4日目です。クリックしてイベントの詳細をご覧ください。
高い塔の上に公共の射撃ハヤブサがあり、それを手に入れることに不利な点はありません。
序文
Spring
はIOC
非常に重要な概念であり、その本質はマップ構造、ストレージコンテナ、およびビジネスBean情報です。ただしBeanFactory
、FactoryBean
との違いは非常に重要な知識ポイントです。この記事では、ソースコードを分析して説明します。
違いとつながり
BeanFactory
Spring
では、すべてが(つまり、IOCコンテナ)Bean
によって管理されます。コンテナの基本的な形式が定義され、IOCコンテナの基本的なインターフェイスとライフサイクルが指定されます。また、、、、および追加の関数を追加するインターフェイスなど、 BeanFactoryの多くの実装クラスがあります。作成されたオブジェクトは、次のライフサイクル形式に従う必要があり、反射メカニズムによって生成が実現されます。BeanFactory
BeanFactory
ApplicationContext
DefaultListableBeanFactory
XmlBeanFactory
BeanFactory
Bean
Bean
英語では、それは意識を意味します。ライフサイクルプロセスには多くのインターフェースが含まれているAware
ことがわかります。BeanFactory
Aware
以下は、プロジェクト開発で広く使用されているBeanFactory
インターフェースApplicationContextAware
です。InitializingBean
DisposableBean
BeanNameAware.setBeanName 用于设置 Bean 的名称
BeanClassLoaderAware.setBeanClassLoader 设置类加载器
BeanFactoryAware.setBeanFactory 设置 bean 工厂
ResourceLoaderAware.setResourceLoader 设置资源加载器
ApplicationEventPublisherAware.setApplicationEventPublisher 设置事件发布器
MessageSourceAware.setMessageSource 设置信息资源
ApplicationContextAware.setApplicationContext 设置应用上下文
ServletContextAware.setServletContext 设置 Servlet 上下文
BeanPostProcessor.postProcessBeforeInitialization 前置处理器
InitializingBean.afterPropertiesSet Bean 初始化操作
RootBeanDefinition.getInitMethodName 设置Bean 的初始化方法名称
BeanPostProcessor.postProcessAfterInitialization 后置处理器
DisposableBean.destroy 设置 Bean 销毁
RootBeanDefinition.getDestroyMethodName 获取 Bean 销毁的方法
复制代码
デフォルトでは、getBeanメソッドを直接呼び出すと、工場で作成されたオブジェクトが返されます。Bean自体を取得する場合は、処理のプレフィックスとして&記号を追加する必要があります。
FactoryBean
ただし、場合によってはBean
インスタンス化操作が非常に複雑になり、要件に応じて多数のプロパティを構成する必要があります。現時点では、ライフサイクルの流れに従わずにオブジェクトを構築する必要がBean
あるという構成の柔軟性があり。 。それ自体が多くの実装を、インスタンス化の一連の複雑な詳細を隠し、上位層のアプリケーションに利便性をもたらします。Srping 3.0はジェネリックスのサポートを開始したため、つまり、インターフェイス宣言がの形式に変更されました。のアプリケーションでは、これは良い習慣です。データベースを操作するプロセスでは、を作成するための。FactoryBean
Bean
Bean
Spring
FactoryBean
FactoryBean
FactoryBean<T>
FactoryBean
SqlSessionFactoryBean
SqlSession
Factory
要約する
BeanFactory
Beanのファクトリインターフェイスを生成および管理できるSpringIOCコンテナ仕様を提供します。ただし、これFactoryBean
はBean作成の特別な方法であり、IOCコンテナーの仕様に従う必要はありませんが、Beanの拡張です。複雑なBeanオブジェクトの作成と使用の場合、オブジェクトの作成の詳細をカプセル化できます。