注入失败为空如:
public class ServerHandler extends ChannelInboundHandlerAdapter {
@Autowired
private SmsServer smsServer;
}
解决办法:
1、创建工具类
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
@Component
@Lazy(false)
public class ApplicationContextRegister implements ApplicationContextAware {
private static ApplicationContext APPLICATION_CONTEXT;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
APPLICATION_CONTEXT = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return APPLICATION_CONTEXT;
}
}
2、在ServerHandler中使用工具类
public class ServerHandler extends ChannelInboundHandlerAdapter {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
private static SmsServer smsServer;
public void test() {
SmsServer smsServer = ApplicationContextRegister.getApplicationContext().getBean(SmsServer.class);
}
}