首页 > 编程知识 正文

service注解,autowired注入service失败

时间:2023-05-04 02:38:07 阅读:105694 作者:3440

除了Controll之外,使用@Autowired注入服务会显示空指针。 这是因为SpringBoot自身的执行顺序问题,您的类的创建可能“错过”了宝贵的注入时间。 为了解决这个问题,我们需要在正确的时间保存我们注入的Service,并建立引用以避免Java回收对象。静态的对象保存它为了抓住时机,需要实现ServletContextAware接口。 这个为什么请自己调查一下。

查看实现: package com.example.demo.net ty.UDP; import com.Alibaba.fast JSON.JSON; import com.Alibaba.fast JSON.JSON object; import com.example.demo.parser.Dao.parsecontrolservice; import com.example.demo.parser.imp.control condition.parsecontrolserviceimp; import io.net ty.channel.channelhandlercontext; import io.net ty.channel.simplechannelinboundhandler; import io.net ty.channel.socket.datagram packet; import lombok.extern.log4j.log4j 2; importorg.spring framework.beans.factory.annotation.auto wired; importorg.spring framework.stereotype.com ponent; importorg.spring framework.stereotype.service; importorg.spring framework.web.context.servletcontextaware; import javax.servlet.servlet context; /**对新消息操作的类* @ log4j2@ componentpublicclassnettyudpserverhandlerextendssimplechannelinboundhandlerdatagrampacket @ autowiredpublicvoidsetparsecontrolservice (parsecontrolservice ) this.parsecontrolservice=parsecontrolservice 改写接收到的数据的具体操作* @ paramchannelhandlercontext * @ paramdatagrampacket * @ throws exception */@ overrideprotectedvoidchannelread0(channelhandlercontextchannelhandlercontext, DatagramPacket datagramPacket ) Throwsexceptext } /** *错误回调* @ paramchannelhandlercontext * @ param cause * @ throws exceptext @ overridepublicvoidexceptioncaught (channelhandlercontextchannelhandlercontext,Throwable cause ) throws exception { cause. //现在可以抓紧时机进行@ overridepublicvoidsetservletcontext (servlet context ) parsecontrol=this.parsecontrolservice )父测量

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。