当前位置: 首页 > wzjs >正文

做传奇网站云服务器地域改选哪里网络营销竞价推广

做传奇网站云服务器地域改选哪里,网络营销竞价推广,怎样使自己做的网站上线,有动态图片的网站源码Spring 通过其 IoC 容器(ApplicationContext 或 BeanFactory)来管理 Bean 的整个生命周期,从 Bean 的创建到销毁的每一个阶段都由容器控制和协调。Spring 提供了多种机制来允许我们在开发过程中介入 Bean 的生命周期,执行自定义的…

Spring 通过其 IoC 容器(ApplicationContextBeanFactory)来管理 Bean 的整个生命周期,从 Bean 的创建到销毁的每一个阶段都由容器控制和协调。Spring 提供了多种机制来允许我们在开发过程中介入 Bean 的生命周期,执行自定义的逻辑。

以下是 Spring 管理 Bean 生命周期的关键机制和流程:

1. Bean 定义 (BeanDefinition):

  • Spring 容器首先需要读取 Bean 的定义。Bean 定义包含了创建和配置 Bean 所需的所有元数据,例如:
    • Bean 的类名
    • 作用域 (scope)
    • 构造函数参数
    • 属性值
    • 依赖关系
    • 初始化方法
    • 销毁方法
    • 是否懒加载
    • 自动装配模式
    • 等等
  • Bean 定义可以来自 XML 配置文件、Java 注解、Java 配置类或编程式注册。

2. BeanFactoryPostProcessor (可选):

  • 在 Bean 实例化之前,Spring 允许通过 BeanFactoryPostProcessor 接口来修改 BeanFactory 的配置元数据。
  • BeanFactoryPostProcessor 可以修改 Bean 定义的属性,例如:
    • 修改 Bean 的类名
    • 修改 Bean 的作用域
    • 添加或修改属性值
    • 等等
  • 常见的 BeanFactoryPostProcessor 有:
    • PropertyPlaceholderConfigurer: 用于属性占位符替换。
    • CustomScopeConfigurer: 用于自定义作用域。
  • 如果有多个 BeanFactoryPostProcessor,Spring 会根据它们的顺序(PriorityOrderedOrdered 或无序)依次调用。

3. BeanDefinitionRegistryPostProcessor (可选):

  • BeanDefinitionRegistryPostProcessorBeanFactoryPostProcessor 的子接口,它允许在 Bean 定义加载完成后、Bean 实例化之前添加、删除或修改 Bean 定义。
  • 常见的 BeanDefinitionRegistryPostProcessorConfigurationClassPostProcessor

4. 实例化 (Instantiation):

  • Spring 容器根据 Bean 定义中的类名,通过 Java 反射机制(Constructor.newInstance()Method.invoke())创建 Bean 的实例。
  • 如果 Bean 定义了构造函数参数,Spring 会解析这些参数并将其传递给构造函数。
  • 如果 Bean 是通过工厂方法创建的,Spring 会调用工厂方法来创建 Bean 实例。
  • 如果 Bean 是一个 FactoryBean,Spring 会调用其 getObject() 方法来获取实际的 Bean 实例。

5. 属性填充 (Populate Properties):

  • Spring 容器根据 Bean 定义中的属性配置,为 Bean 的属性赋值。
  • 支持 Setter 注入、字段注入和构造函数注入(构造函数注入在实例化阶段完成)。
  • Spring 会自动处理类型转换。
  • 如果启用了自动装配,Spring 会自动查找并注入依赖的 Bean。

6. Aware 接口回调:

  • 如果 Bean 实现了 Spring 提供的一些 Aware 接口,Spring 容器会在属性填充完成后、初始化之前调用这些接口的方法,将相应的资源注入到 Bean 中。
  • 常见的 Aware 接口包括:
    • BeanNameAware
    • BeanFactoryAware
    • ApplicationContextAware
    • EnvironmentAware
    • ResourceLoaderAware
    • MessageSourceAware
    • ApplicationEventPublisherAware

7. BeanPostProcessor 前置处理:

  • Spring 容器调用所有已注册的 BeanPostProcessorpostProcessBeforeInitialization 方法。
  • BeanPostProcessor 可以在 Bean 初始化之前对 Bean 进行修改或执行其他操作(例如,AOP 代理就是在这里创建的)。

8. 初始化 (Initialization):

  • Spring 容器调用 Bean 的初始化方法。
  • 初始化方法的调用顺序:
    1. @PostConstruct 注解标注的方法
    2. InitializingBean 接口的 afterPropertiesSet 方法
    3. Bean 定义中指定的 init-method 方法

9. BeanPostProcessor 后置处理:

  • Spring 容器调用所有已注册的 BeanPostProcessorpostProcessAfterInitialization 方法。
  • BeanPostProcessor 可以在 Bean 初始化之后对 Bean 进行修改或执行其他操作。

10. Bean 就绪 (Ready to Use):

  • Bean 现在已经完全初始化,可以被应用程序使用了。
  • 对于单例 Bean,Spring 容器会将其缓存起来,以便后续使用。
  • 对于原型 Bean,每次请求都会创建一个新的实例。

11. 销毁 (Destruction): (仅当容器关闭, 且Bean的作用域是singleton时)

  • 当 Spring 容器关闭时,会销毁所有单例 Bean。
  • 销毁方法的调用顺序:
    1. @PreDestroy 注解标注的方法
    2. DisposableBean 接口的 destroy 方法
    3. Bean 定义中指定的 destroy-method 方法

关键接口和注解:

  • BeanFactory: Spring IoC 容器的核心接口,负责创建、配置和管理 Bean。
  • ApplicationContext: BeanFactory 的子接口,提供了更高级的功能(事件、国际化等)。
  • BeanDefinition: 描述 Bean 的定义。
  • BeanFactoryPostProcessor: 允许在 Bean 实例化之前修改 BeanFactory 的配置元数据。
  • BeanPostProcessor: 允许在 Bean 初始化前后进行处理。
  • InitializingBean: 提供 afterPropertiesSet 方法,在 Bean 属性设置完成后执行初始化逻辑。
  • DisposableBean: 提供 destroy 方法,在 Bean 销毁前执行清理逻辑。
  • @PostConstruct: 标记初始化方法。
  • @PreDestroy: 标记销毁方法。
  • Aware 接口: 用于注入容器提供的资源。
  • @Autowired: 自动注入
  • @Component: 组件

总结:

Spring 通过其 IoC 容器来管理 Bean 的整个生命周期,从 Bean 的创建到销毁的每一个阶段都由容器控制。 Spring 提供了 BeanDefinitionBeanFactoryPostProcessorBeanPostProcessorInitializingBeanDisposableBean、Aware 接口、@PostConstruct@PreDestroy 等机制,允许我们在开发过程中介入 Bean 的生命周期,执行自定义的逻辑。

http://www.dtcms.com/wzjs/430897.html

相关文章:

  • joomla可以做预订类网站吗杭州网站seo价格
  • 做网站好吗2021网络营销成功案例
  • 网站建设需要哪些步骤百度推广广告收费标准
  • 网站首页怎么做ps域名解析ip138在线查询
  • 地方招聘网站如何做推广解封后中国死了多少人
  • 外贸做那种网站搜索引擎优化的报告
  • 南京越城建设集团网站网络营销公司名字大全
  • 网页微博怎么看直播优化大师手机版
  • 淄博网站推广公司游戏交易平台
  • 网页制作模板的网站环境保护网络营销管理
  • Wordpress 分表分库百度网站排名搜行者seo
  • 厦门做网站哪家公司好郑州网络营销公司哪家好
  • wordpress外贸建站怎么加左侧边栏成都营销型网站制作
  • 成都电子网站建设网站优化推广seo公司
  • 一级a做爰片免费网站录像品牌营销策略四种类型
  • 宿迁做网站优化免费b站软件推广网站
  • wordpress修改网站名称qq推广引流怎么做
  • 英文网站建设公司泉州seo托管
  • 网站制作教程手机今日国内新闻重大事件
  • 百度网盟推广有哪些网站日本网站源码
  • 驻马店 市网站建设新媒体代运营
  • wordpress企业站主题宣传推广方案模板
  • php实验报告企业网站开发百度网页版入口
  • 网站建设公司新员工培训ppt潍坊今日头条新闻最新
  • 欧美网站设计特点凡科网建站系统源码
  • 营销型企业网站建设价格推广普通话宣传标语
  • 做自己照片视频网站申请一个网站
  • 北京专业做网站的百度的电话人工客服电话
  • wordpress主题字体用隶书指定关键词seo报价
  • tob0.5 wordpress关键词排名优化营销推广