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

网站推广投放服务器网站建设

网站推广投放,服务器网站建设,海口 网站 制作,网站怎样做自适应分辨率大小Spring Bean 生命周期#xff1a;注册、初始化、注入及后置操作执行顺序 Spring Bean 的生命周期包含多个阶段#xff0c;了解这些阶段的执行顺序对于正确使用 Spring 框架至关重要。以下是完整的执行顺序#xff1a; 1. Bean 定义注册阶段 配置源读取#xff1a;Spring…Spring Bean 生命周期注册、初始化、注入及后置操作执行顺序 Spring Bean 的生命周期包含多个阶段了解这些阶段的执行顺序对于正确使用 Spring 框架至关重要。以下是完整的执行顺序 1. Bean 定义注册阶段 配置源读取Spring 读取 XML、Java Config 或组件扫描的配置BeanDefinition 注册将 Bean 定义注册到 BeanDefinitionRegistry 对于 Component 扫描的类通过 ClassPathBeanDefinitionScanner对于 Java Config通过 Bean 方法对于 XML通过 BeanDefinitionParser 2. Bean 实例化阶段容器启动时 依赖排序Spring 解析 Bean 之间的依赖关系确定创建顺序实例化 Bean 通过构造函数或工厂方法创建 Bean 实例此时 Bean 属性还未注入是半成品 3. 依赖注入阶段 属性注入 Autowired 字段注入Autowired setter 方法注入Value 值注入 Aware 接口回调按顺序 BeanNameAware.setBeanName()BeanClassLoaderAware.setBeanClassLoader()BeanFactoryAware.setBeanFactory()EnvironmentAware.setEnvironment()EmbeddedValueResolverAware.setEmbeddedValueResolver()ResourceLoaderAware.setResourceLoader() (仅适用于应用上下文)ApplicationEventPublisherAware.setApplicationEventPublisher() (仅适用于应用上下文)MessageSourceAware.setMessageSource() (仅适用于应用上下文)ApplicationContextAware.setApplicationContext() 4. 初始化阶段 PostConstruct 注解方法InitializingBean.afterPropertiesSet() 接口实现自定义 init 方法XML 中 init-method 或 Bean(initMethod init) 5. 后置处理器阶段 BeanPostProcessor.postProcessBeforeInitialization() 在所有初始化回调之前BeanPostProcessor.postProcessAfterInitialization() 在所有初始化回调之后 6. 使用阶段 Bean 完全初始化可供其他 Bean 使用 7. 销毁阶段容器关闭时 PreDestroy 注解方法DisposableBean.destroy() 接口实现自定义 destroy 方法XML 中 destroy-method 或 Bean(destroyMethod cleanup) 完整执行顺序图示 Bean定义注册 → 实例化 → 依赖注入 → │ ├─ Aware接口回调 → │ ├─ BeanPostProcessor.postProcessBeforeInitialization() → │ ├─ 初始化阶段: │ ├─ PostConstruct → │ ├─ InitializingBean.afterPropertiesSet() → │ └─ 自定义init方法 → │ ├─ BeanPostProcessor.postProcessAfterInitialization() → │ └─ 使用阶段 → 销毁阶段关键注解和接口的执行顺序 构造器或 Bean 工厂方法Autowired 和 Value 注入Aware 接口回调PostConstructInitializingBean.afterPropertiesSet()自定义 init 方法PreDestroyDisposableBean.destroy()自定义 destroy 方法 示例代码 Component public class ExampleBean implements BeanNameAware, InitializingBean, DisposableBean {Autowiredprivate Dependency dependency;Value(${some.property})private String someProperty;public ExampleBean() {System.out.println(1. Constructor);}Autowiredpublic void setAnotherDependency(AnotherDependency dep) {System.out.println(2. Autowired setter);}Overridepublic void setBeanName(String name) {System.out.println(3. BeanNameAware: name);}PostConstructpublic void postConstruct() {System.out.println(4. PostConstruct);}Overridepublic void afterPropertiesSet() {System.out.println(5. InitializingBean.afterPropertiesSet());}public void customInit() {System.out.println(6. Custom init method);}PreDestroypublic void preDestroy() {System.out.println(7. PreDestroy);}Overridepublic void destroy() {System.out.println(8. DisposableBean.destroy());}public void customDestroy() {System.out.println(9. Custom destroy method);} }特殊场景说明 循环依赖Spring 通过三级缓存解决构造器注入的循环依赖问题 一级缓存单例对象池二级缓存早期暴露的原始对象三级缓存对象工厂 代理对象AOP 代理会在依赖注入完成后创建可能影响某些生命周期回调的顺序 懒加载Lazy Bean 会在第一次被请求时初始化而不是容器启动时 理解 Spring Bean 生命周期的完整顺序有助于解决复杂的依赖问题正确使用各种回调方法以及在适当的时候执行初始化逻辑。
http://www.hkea.cn/news/14578659/

相关文章:

  • 企业网站建设好的例子wordpress kratos主题
  • 内蒙古建设厅门户网站网站站长统计怎么做
  • 明港网站建设网站后缀名
  • 海口免费自助建站模板梧州自助建站seo
  • 哪个网站能接施工图来做广告平面设计工作内容
  • 网页设计与网站建设课程总结王也踏青图
  • 兰州市住房和城乡建设厅官方网站遵义网站制作报价
  • 30天网站建设 视频荥阳网页设计
  • 做网站 卖产品全球访问量top100网站
  • 山东富国建设投资有限公司网站宁波网站优化技术
  • 网站开发 教程公益平台网站怎么做
  • iis 发布网站 500网站开发设计电子书
  • 做网站需要下什么软件四川成都最大的网络科技公司
  • 在线切图网站怎么看网站的访问量
  • 西平县住房和城乡建设局网站公司给别人做的网站违法的吗
  • 全国做网站哪家好直播营销策划方案
  • 网站建设公司企业模板番禺制作网站系统
  • 专做动漫解说的网站涉密项目单位网站建设流程
  • 制作网站软件app一键打开多个wordpress
  • 怀化做网站wordpress用户关注
  • 中文企业网站设计欣赏建设网站收取广告费用
  • 可以做任务挣钱的网站wordpress最近文章
  • 自己的网站做微信接口平台上海百度搜索排名优化
  • cms网站源码三点水网站建设合同书
  • 反馈网站怎么做建设通建筑企业查询
  • 勤哲网站开发视频广东网络营销服务
  • 东莞公司网站设计随州网站推广哪家权威
  • 高县网站建设网站建设对接视频
  • 模板建站oem代理PS做网站页面尺寸
  • 加盟营销型网站建设百度代理