spring启动加载类,手动加载bean

方法一:

 

public final class Assembler implements BeanFactoryPostProcessor {
     private static ConfigurableListableBeanFactory beanFactory; // Spring应用上下文环境
     public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
           Assembler.beanFactory = beanFactory;
           initMerchant();
     }

 

实现该接口,可以在spring的bean创建之前,修改bean的定义属性。
也就是说,Spring允许BeanFactoryPostProcessor在容器实例化任何其它bean之前读取配置元数据,并可以根据需要进行修改
 手动注册bean:
 private static ConfigurableListableBeanFactory beanFactory; // Spring应用上下文环境
     DefaultListableBeanFactory beanFactory2 = (DefaultListableBeanFactory) beanFactory;
     BeanDefinitionBuilder beanMer = BeanDefinitionBuilder.genericBeanDefinition(className);
     beanMer.setParentName(beanType);
     beanMer.addPropertyValue("mrchCode", corgNum);
     beanMer.addPropertyValue("connectionName", beanName);
     beanMer.setInitMethodName("init");
     beanMer.setInitMethodName("isMerchantOpen");
     beanName = beanType + "_" + corgNum;
     beanFactory2.registerBeanDefinition(beanName, beanMer.getRawBeanDefinition());
方法二:
public class InitConfig extends HttpServlet implements ServletContextListener {
 
     @Override
     public void contextDestroyed(ServletContextEvent arg0) {
           logger.info("销毁。。。。");
           timer.cancel();
     }
     @Override
     public void contextInitialized(ServletContextEvent arg0) {
           logger.info("初始化。。。。");
            //手动让spring容器管理此类
          SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
     }
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <listener>
    <listener-class>jsfirst.weixin.InitConfig</listener-class>
  </listener>

 

 
 
 
 
 

转载于:https://www.cnblogs.com/bchange/p/9182014.html

相关推荐

spring动态向容器中添加bean和删除指定bean.md

spring动态向容器中添加bean和删除指定bean,不需要重启应用

Spring注入bean的常用的六种方式

ComponentScan默认是扫描的路径是同级路径及同级路径的子目录,所以把SpringBoot的启动类放在根目录下,@ComponentScan是可以省略不写的。该标记的用途之一是异常的自动翻译,如异常翻译中所述。注入与List中泛型一样的类型,会自动去匹配类型,及时这里没有任何List的感觉,只是String的类型,但他会去通过List的Bean的方式去注入。这两个值的作用是一样的,是相互别名的关系。@Bean的注解,标明这是一个注入Bean的方法,会将下面的返回的Bean注入IOC。...

m0_67393686的博客 1472

告别单一帧:在CFD-POST中完整加载Fluent瞬态计算结果的实战指南

本文详细介绍了在CFD-POST中完整加载Fluent瞬态计算结果的实战指南,解决工程师常见的只能看到最后一帧数据的问题。通过Fluent端的正确设置和CFD-POST端的完整加载技巧,帮助用户高效处理瞬态数据,提升后处理效率。文章还提供了常见问题排查、性能优化和高级后处理技巧,适用于Workbench环境下的流体流动分析。

weixin_29284657的博客 535

14、Spring-Boot 加载Bean的几种方式

01、学习内容 1、Spring-Boot 加载Bean的几种方式 2、自定义starter,顺便理解springboot加载原理和机制 02、探索springboot的加载bean几种方式 springboot启动类上的注解是一个复合注解: @SpringBootConfiguration 配置类 + @Bean 配置类作用:方便扩展、方便集成,不受包约束。 @EnableAutoConfiguration springboot内部的starter加载的原理 内部其实:配置+@Bean

qq_41978323的博客 1412

逆向工程师的Shopee爬虫避坑指南:af-ac-enc-dat参数生成原理与反反爬策略

本文深入剖析了Shopee电商平台的反爬虫加密机制,重点解析了核心请求头参数x-sap-ri、x-sap-sec及af-ac-enc-dat的生成原理与联动关系。文章从逆向工程视角,提供了定位加密代码、分析算法逻辑的实战方法,并分享了基于JS执行环境模拟与无头浏览器控制的可持续反反爬策略,为高效、稳定地采集数据提供专业指南。

weixin_28607671的博客 1487

模拟IC设计避坑:手把手教你用Cadence仿真恒定跨导轨到轨运放(附完整工艺库文件)

本文详细解析了使用Cadence仿真恒定跨导轨到轨运放的全流程,涵盖电路原理、工艺库配置、尺寸设计及仿真分析。通过1:3电流镜补偿技术实现跨导稳定,提供CSMC 0.25um工艺下的实战案例,帮助工程师规避设计陷阱,提升模拟IC设计效率。

weixin_30952535的博客 493

Spring原理-加载bean的8种方式

案例:在已有的项目(该项目使用xml文件配置bean)中,自己如何变成注解开发。

weixin_46926189的博客 654

飞牛fnOS安装1Panel后Docker容器消失?三步教你恢复数据并避免踩坑

本文详细解析了飞牛fnOS安装1Panel后Docker容器消失的问题,指出这是由于daemon.json文件被覆盖导致。通过SSH连接、修复配置文件和系统重启三个步骤,用户可以轻松恢复数据。文章还提供了预防措施和最佳实践,帮助用户避免类似问题。

yellow的专栏 866

八种常见Bean加载方式

关于bean的加载方式,spring提供了各种各样的形式。已知类通过(类名.class)交给spring管理已知类名通过(类名字符串)并交给spring管理。两种形式内部其实都一样,都是通过spring的BeanDefinition对象初始化spring的bean。bean的定义由前期xml配置逐步演化成注解配置,本质是一样的,都是通过反射机制加载类名后创建对象,对象就是spring管控的bean。

meser88的博客 1536

【Arduino 动手做】六舵机自平衡 Rotary Stewart 平台

《Arduino六舵机自平衡Rotary Stewart平台项目》 该项目展示了一个基于Arduino的六自由度Rotary Stewart平台,通过六个舵机实现动态平衡控制。设计采用激光切割框架和TAMIYA 70171套件,提供详细组装指南和开源固件(GitHub可获取)。开发者丹·罗耶分享了3D打印文件、视频演示及运动学优化需求,强调该平台可扩展应用于游戏控制(如Kerbal Space Program)或教育领域。项目链接包含完整资源包,鼓励用户参与改进并分享创作成果。该案例体现了Arduino在机

雕爷学编程 1087

VMware如何安装img镜像,VMware如何安装openwrt软路由(含相关工具镜像)

VMware如何安装img镜像,VMware如何安装openwrt软路由(含相关工具镜像)

XiaoqiangClub的博客 4001

手动加载bean到spring容器

这种方式其实,在上一篇文章已经介绍过了,也是我们最常用的一种方式,@Configuration用来声明一个配置类,然后使用 @Bean 注解,用于声明一个bean,将其加入到Spring容器中。这种方式也是我们用的比较多的方式,@Componet中文译为组件,放在类名上面,然后@ComponentScan放置在我们的配置类上,然后可以指定一个路径,进行扫描带有@Componet注解的bean,然后加至容器中。

weixin_43051544的博客 902

笔试题-2023-星宸-数字IC设计【纯净题目版】

4 笔试题-2023-星宸-数字IC设计【纯净题目版】

w0shishabi的博客 1171

Spring 源码解读:实现Spring容器的启动流程

Spring容器的启动流程是Spring框架核心的组成部分,了解其启动机制能够帮助开发者更好地掌握Spring的内部工作原理。这篇文章将通过实现一个简化版的Spring容器启动流程,涵盖容器的初始化和配置加载,并与Spring实际的启动过程进行对比分析,帮助你深入理解Spring容器的启动机制。

捕风捉你 · 星桥API接入与大模型实战 1813

【CASS精品教程】032:CASS11台阶画法案例大全

一、普通无边台阶 二、普通有边台阶 三、普通圆弧无边台阶 四、U型台阶 五、曲线U型台阶 六、L型台阶

智慧空间实验室 7453

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Spring web应用下方便的获得bean(转)

如果我们的系统不是分布式的(在分布式里,我一般自己加载spring的配置文件),不是一般的application,通过自己加载Spring的配置文件的方式。而是一般的web应用,我们通过在web.xml里配置spring的配置文件。我们怎么方便的得到一个Bean的实例呢?当然,web应用启动后,它已经创建好一个WebApplicationContext(这个是接口,其实也是ApplicationC

wangshfa的专栏 607

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Spring动态加载.java文件代码(插件开发)

在某个对外通知平台中间件,需将内部的通知发送给不同外部平台,不同平台之间使用不同协议,现需提供一个协议插件功能,并提供可视化界面。SpringBoot启动时执行动态代码(注册到IoC容器版)Spring上下文工具类,用于手动注册Bean到IoC容器。动态Java代码编译执行工具类(支持热更新)

雨后是冰雹 77

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的性能优化:减少启动时间与内存占用

Spring Boot 这玩意儿,用过的都知道,方便是真方便,但有时候启动慢得像蜗牛爬,内存占得跟吃大户似的。

FoyoDesigner的博客 1635

Spring源码-Spring初始化单例bean步骤

1、AbstractApplicationContext.refresh() 2、AbstractApplicationContext.finishBeanFactoryInitialization(beanFactory) 3、DefaultListableBeanFactory.preInstantiateSingletons(); 4、AbstractBeanFactory.doGetBean() 1、AbstractBeanFactory.getSingleton(beanName);第一

常威打来福 183

Spring的Bean加载流程

Spring IOC容器就像是一个生产产品的流水线上的机器,Spring创建出来的Bean就好像是流水线的终点生产出来的一个个精美绝伦的产品。既然是机器,总要先启动,Spring也不例外。因此Bean的加载流程总体上来说可以分为两个阶段: 容器启动阶段 Bean创建阶段 一、容器启动阶段: 容器的启动阶段做了很多的预热工作,为后面Bean的实例化做好了充分的准备,我们首先看一下容器的启动阶段都做了哪些预热工作。 1、配置元信息: Spring IOC容器将对象实例的创建与对象实例的使用分离,当业务

张维鹏的博客 7万+

深入理解Spring框架-启动Bean加载过程

深入理解Spring框架-启动Bean加载过程 spring web应用启动过程核心流程如下: 核心过程: (1)web 容器启动时,首先加载web.xml 文件,并逐一解析web.xml文件内容配置,优先解析到内容上线文加载监听器配置:org.springframework.web.context.ContextLoaderListener, 该配置主要工作是:基于contextClass...

sinat_27548257的博客 3万+

spring启动加载bean的过程

参考网站:https://blog.youkuaiyun.com/aini201/article/details/77097314 当Web应用启动时,contextInitialized方法会执行载入根上下文(IOC容器): (1)spring的web项目启动的时候会,启动我们常用的监听类。 &lt;context-param&gt; &lt;param-name&gt;contextCo...

追逐消失的记忆 2016

Spring容器加载Bean和JVM加载类

类的加载是在首次需要访问类的信息或实例化类的对象时发生的过程。ClassLoader负责加载类的字节码,并在内存中创建对应的Class对象,从而使得Java程序能够操作和使用这些类。在Java中,类的加载是按需进行的,也就是说,只有在需要使用某个类时才会进行类的加载过程。这意味着如果某个类在程序执行过程中从未被使用过(包括实例化、访问静态变量或方法、反射等),那么这个类就不会被加载到内存中。具体来说,当执行Java程序时,JVM会按照需要逐步加载类。例如,如果程序中某个方法引用了一个类,那么在该方法被调用之

苟且。的博客 1461

Spring的bean加载流程

spring的bean记载流程

qq_38645103的博客 5797

spring测试加载指定的bean

轻量测试:优先选手动加载;集成测试:用限定扫描范围或覆盖Bean;依赖隔离:结合@MockBean和。通过精确控制Bean加载,可显著提升测试速度与可靠性。实际选择需根据测试类型和上下文需求权衡。

leijmdas的专栏 1293

如何在非Spring管理的类中使用Spring加载的bean

<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> ...

weixin_30443813的博客 1315
上一篇: 浏览器兼容
下一篇: 2.19 cookie相关操作
weixin_30872867
博客等级 码龄11年 104粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值