java 拿不到bean 有偿


这俩又成null了

试试这样?

@Service
public class TimeScheduler {

    private static TimeScheduler timeScheduler;

    @PostConstruct
    public void init() {
        timeScheduler = this;
        timeScheduler.workOrderService = this.workOrderService; 
    }

    @Autowired
    private WorkOrderService workOrderService;

    public void task1() throws Exception {
        
        timeScheduler.workOrderService.deleteAll();//删除数据
      }

可以使用Spring的ApplicationContext 来获取Bean,并在线程中使用,不过强烈不推荐

定时任务那块被spring管理了吗

springutil.getbean试试,新手小白,说错了,各位佬轻点喷 :joy:

让我来。远程码发来,在线等。解决了说下。我就不等了

没看到service相关注解,我个人认为 没有

模仿原先老员工的写法 看看有没有效果
paymentSlipPushService = (PaymentSlipPushService) SpringContextUtil.getBean(“paymentSlipPushService”)

BeanUtil.getProxyLogic(PaymentSlipPushService.class).findPaymentSlip();


public class BeanUtil {
    public static <T> T getProxyLogic(Class<T> objClass) {
        ApplicationContext ctx = ApplicationContextProvider.getApplicationContext();
        return ctx.getBean(objClass);
    }
}

不知道行不行,试试看

1 个赞

那可能就是定时任务没被spring管理,无法使用依赖注入

还真是这个问题,解决了

1 个赞

还得是老员工的代码啊

老项目看是2013年写的,就按他的规则来做,改动最小。
api请求在spring的框架内,
定时任务new了新的线程,得用spring工具类拿bean

解决了!!!

什么时候能用上Spring Boot啊

L站人真厉害

不清楚代码的情况下,复用老代码啊,没必要折腾