非service类注入bean的一个通解(针对不容易注入bean的时候)

实力总结四类Bean注入Spring的方式 源码 实战 一提到Spring,大家最先想到的是啥?是AOP和IOC的两大特性?是Spring中Bean的初始化流程?还是基于Spring的Spring Cloud全家桶呢? 今天我们就从Spring的IOC特性入手,聊一聊Spring中把Bean注入Spring容器的几种方式。 我们先来简单了解下IOC的概念:IOC即控制反转,也称为依赖注入,是指将对象的创建或者依赖关系的引用从具体的对象控制转... 阅读详情
 线程任务类bean注入的问题(不容易注入bean的问题通解)
 
 
 有些类不是标准的service类,注入bean会有问题
 加上compoent注解依然不行,
 比如对于线程任务类,注入一些service时候有时候会报bean不能创建

 比如刚才我使用的封装的一个memcache的一个class  如下图会报错

 



 想了一个办法,注入不进去,我直接传进去可以把
 这个思路我觉着还是比较通用的,分享一下 

 

如下

InvoiceAuthorizationTask.java

    private CPCacheClient cPCacheClient ;
    
    private TokenGetRequest tokenGetDTO;

    @Value("${baiwang.authorizationApi.url}")
    private String authorizationApiUrl;

    public InvoiceAuthorizationTask(TokenGetRequest tokenGetDTO,
            String authorizationApiUrl,CPCacheClient cPCacheClient) {
        this.tokenGetDTO = tokenGetDTO;
        this.authorizationApiUrl = authorizationApiUrl;
        this.cPCacheClient= cPCacheClient ;
    }

对于这个类的使用 (我在使用task类的内部注入 然后传进去)

public class SellerInfoServiceImpl implements SellerInfoService {

@Autowired
    private CPCacheClient cPCacheClient ;

 private void recursionGetToken(TokenGetRequest tokenGetDTO,
            List<LoginResponseEntity> resList,Integer retryTimes) {

        LoginResponseEntity res = new LoginResponseEntity();
        ExecutorService es = ExecutorServiceBillingTask.getEs();
        Future<LoginResponseEntity> resFuture = es.submit(new InvoiceAuthorizationTask(tokenGetDTO,
                authorizationApiUrl,cPCacheClient));
        try {
          Random random = new Random();
          if( random.nextInt(10)>2) {
              throw new TimeoutException();
          }
            //TODO 时间要调整下
            res =  resFuture.get(Integer.parseInt(overtime),TimeUnit.SECONDS);
        }
        catch (TimeoutException  |InterruptedException | ExecutionException e) {
            //只处理超时
            InvoicePurchaseQueryResponse c = new InvoicePurchaseQueryResponse();
            res.setCode(ResponseCodeEnum.BUSINESS_TIME_OUT.getCode());
            res.setMessage( ResponseCodeEnum.BUSINESS_TIME_OUT.getMessage());
        }

BDD测试之Behave使用入门 BDD测试(Behavior-Driven Development Testing)是一种基于“行为驱动开发”(BDD)理念。 阅读详情

相关推荐

CANoe之UDS诊断自动化测试(四):创建诊断自定义Panel发送诊断(替代Session Control窗口)

通过自定义的Panel界面实现诊断发送的功能,并且还可以根据自己的测试需求添加需要的诊断信息,使用非常灵活。

weixin_69677286的博客 1904

非controller,非service注入

系统为SpringMVC框架,在开发的过程中有一些工具类需要调用下由spring管理的service层。 @Component //申明为spring组件 public class TestUtils { @Autowired private TestService testService; //添加所需service的私有成员 priv...

weixin_41630573的博客 250

OV5640摄像头DVP与MIPI接口配置实战:从30Hz到60Hz的性能优化指南

本文详细解析了OV5640摄像头在DVP与MIPI接口下的60Hz性能优化方法,重点解决720p分辨率下帧率仅30Hz的常见问题。通过精确配置时钟树、传感器寄存器和接口参数,提供DVP与MIPI接口的实战配置代码,并分享调试工具与性能验证技巧,帮助开发者实现稳定的60fps输出。

weixin_29223603的博客 1301

Spring @Autowired注解在非Controller/Service中注入为null

参考:https://blog.youkuaiyun.com/qq_35056292/article/details/78430777 问题出现: 在一个非controller/service类中,我需要注入Config类 @Autowired MyConfig myConfig; public int getUrl(){ String url=myConfig.getUrl; } 这时候,myC...

weixin_30731305的博客 472

IAR安装成功的关键:STM32设备支持文件导入方法

IAR安装常卡在设备支持缺失这一步——尤其对STM32新手,没导入对应芯片包,编译直接报错。实测发现,必须通过IAR的Tools→Options→IDE→Configuration→Device Support手动加载STM32设备支持文件,否则新建工程时连芯片型号都选不到。IAR安装是否顺利,往往就差这一步。

weixin_42527589的博客 680

JavaScript China城市联动

中国全城市的地址省,市,县 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <script src="jquery.js"></script> <script src="json.js"></...

唯唯同学 2241

Java如何在非Service/非Controller层注入Service层

在项目中尝试了在非Service/非Controller层注入Service层,但调用某函数时报空指针,说明注入不成功 在测试类已经通过的情况下 仍然报空指针 在原有代码的基础上 添加@Component 注解 使用@PostConstruct使所注入的对象交由静态对象管理 @Component public class Callback { @Autowired IAmopsPuladminService amopsPuladminServiceAuto; //注入要调用的对象

GniLAY1022的博客 1459

AI Agent在保险行业落地:从智能客服到核保理赔的实践路径

AI Agent作为大模型技术的核心应用形态,正从通用对话走向垂直行业深度落地。其本质是让机器理解自然语言、处理非结构化文档,并在复杂业务流程中辅助人类完成信息抽取、内容生成与多轮交互。在保险这一强监管、高客单价的行业中,智能客服与销售助手率先验证了降本增效的价值,核保与理赔环节则进一步展示了AI在文档理解与风控辅助上的高价值潜力。从技术原理到商业闭环,垂直场景正在成为AI应用的主战场。本文以保险行业为样本,剖析AI Agent如何嵌入真实业务流程,梳理可复用的三阶段落地路径,为企业在医疗、金融等类似高文本

weixin_29039773的博客 364

spring配置注入方式的两种实现(没有用注解)

实现service接口的业务类 构造方法注入 /** * @author DELL * 业务层实现类 */ public class AccountServiceImpl implements IAccountService { /** * 经常变化的数据,并不适合构造方法注入 */ private String name; private In...

qq_44801336的博客 952

在jetson上对fastdeploy进行源码编译(完整版)

在大多数Linux发行版中,你可以使用包管理器安装Python开发包。根据jetpack的版本选择对应的推理库版本。在~/.bashrc中写入这三行。

如果想成为中心,那么就到中心去吧。 678

AI故障预测系统架构设计:5个核心模块+3种主流架构,收藏这篇就够了

深夜11点,某汽车工厂的生产线突然停机——核心机器人的轴承磨损过度导致卡壳。维修人员连夜抢修,直接损失超过50万元,还延误了客户的交货期。传统的“事后维修”或“定期维护”要么代价高昂,要么防不胜防。AI故障预测系统的出现,让“精准维护”成为可能——它能通过传感器数据提前7-30天预警故障,将停机损失降低80%以上。知道要做故障预测,却不知道怎么搭系统——数据怎么采集?特征怎么提取?模型怎么部署?架构怎么选?本文将解决这些问题:我们会拆解AI故障预测系统的5个核心模块,分析3种主流架构。

AIGC应用创新大全的博客 1019

java中的@PostConstruct注解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

ma_xudong的博客 425

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

spring框架不使用注解实现注入

首先是目录结构代码部分。配置信息    &lt;bean id ="testIoc" class = "springtest.UserServiceImpl"&gt;    &lt;property name="userDao" ref ="dao"&gt;&lt;/property&gt;    &lt;/bean&gt;        &lt;bean

qq_27631217的博客 2283

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

visio安装包

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

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

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

A_awen的博客 2万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

为什么注入的是service,而service接口没有加注解

因为@Service是把spring容器中的bean进行实例化,也就是等同于new操作,只有实现类是可以进行new实例化的,而接口则不能,所以是加在实现类上的。可以随意切换实现类金毛或者二哈,而不用改代码,起到解耦的作用.@Service注解是标注在实现类上的。(多态,狗=new 金毛())(多态,狗=new 二哈())

weixin_70280523的博客 823

依赖注入的三种方式

Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入(Construct注入),setter注入,基于注解的注入(接口注入)。(参考https://blog.youkuaiyun.com/jinchaoh/article/details/80246577) 构造方法注入 如果只有一个有参数的构造方法并且参数类型与注入的bean的类型匹配,那就会注入到该构造方法中。...

Juliussss 3万+

通过@Autowired注入的bean,即使这个类上没有标注@Comment等这一类的注解,但是这个bean依然能够注入进来

问题描述:在公司的项目中进行单元测试的时候发现,即使这个类上没有标注@Comment或者@Service等这一类的注解,但是Bean依然能够注入进来。 按理说springboot在进行扫描的时候,没有标注注解的类是不会加载到ioc容器里面,就很奇怪。因为常见注入类到ioc容器中,无非通过注解和xml,注解没配置,那应该就是通过xml实例化了,经过排查发现,在启动类中通过@ImportResource导入了xml文件applicationContext.xml在这个xml中有这样一段配置 &lt...

weixin_43410352的博客 1186

spring注解(二)

一、bean之间有关联关系因此,只是一个是不行的,还是最好用到@Autowired。如下面的代码,用@Autowired注解的bean必须是已经被配置了的,如果没有被配置那么会报异常。如下面代码中,用@Autowired注解了一个UserSerivice,这样在UserService类中一定要@Component注解。 代码段一:在UserController中用到了UserService类pac

u013161241的博客 457

如何在非 bean 对象中注入 dubbo service

首先需要一个spring静态获取bean的工具类 @Component public class SpringContextBeanUtil implements ApplicationContextAware { private static ApplicationContext context; @Override public void setApplicationConte...

ChanVo's blog 878

在非Spring 容器管理的类中,获取spring容器中的 bean

第一种方式 写一个工具类,实现ApplicationContextAware接口,从spring容器中获取 ① 写一个工具类 package com.june.utils; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; impo

法国锄头雨 3498

spring @service 不用@auowire如何注入

spring @service注解 不用@autowire如何注入

csdn570566705的博客 475

【开发心得】非SpringBean管理的类使用Bean注入的解决方案。

前言: 这种场景还是比较多的,比如Quartz定时器框架,比如我们自己编写的一些工具类还想对数据库操作等。 解决方案,通过手动实现ApplicationContextAware,从applicationContext中获取bean即可。 @Component public class SpringUtils implements ApplicationContextAware { private static ApplicationContext applicationCo.

清风唱诗人的博客 1892

非spring注入使用RedisTemplate,需先调用afterPropertiesSet()方法

错误信息: Exception in thread "main" java.lang.IllegalArgumentException: template not initialized; call afterPropertiesSet() before using it at org.springframework.util.Assert.isTrue(Assert.java:92) ...

weixin_44261856的博客 2082

spring非controller层使用@Autowired注解注入的bean

一,使用spring的注解从而使用依赖注入注入。    @Component    public class SynchroDataQuartz 二,使用@Autowired注解注入需要用到的bean。     @Autowired     private InstitutionService institutionService;          @Autowired     priva...

weixin_41929877的博客 1604

如何在静态方法或非Spring Bean中注入Spring Bean

如何在静态方法或非Spring Bean中注入Spring Bean 原文链接:https://www.cnblogs.com/zhangxufeng/p/9162184.html 在项目中有时需要根据需要在自己new一个对象,或者在某些util方法或属性中获取Spring Bean对象,从而完成某些工作,但是由于自己new的对象和util方法并不是受Spring所管理的,如果直接在所依赖的属性上...

小半的博客 1612

【java项目】Service注入或Bean注入两种实现方法

【java项目】Service注入或Bean注入两种实现方法

lucky_94的博客 4436
上一篇: Redis缓冲区设置
下一篇: SimpleDateFormat的线程安全问题与解决方案
琅琊山二当家
博客等级 码龄18年 447粉丝 322原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值