我正在自动装配组件中的对象。我能够在一个组件中访问它,我无法在另一个组件中访问它。
为什么?
@Component
public class AcListenerPublisherImpl implements MessageListener {
private static final Logger log = Logger.getLogger(AcListenerSubscriber.class);
@Value("${ac.templates.actual}")
private String actual;
@Value("${ac.templates.curve}")
private String curve;
@Autowired
private AcImpl ac;
public AcListenerPublisherImpl(){
}
@Override
public void onMessage(Message message) {
try {
......
} catch (JMSException | ClassNotFoundException | IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
private void executeevent(AcTransactionRecord record) {
AcEvent acEvent;
LINE 100 log.info("Got port" +ac.getServer().getHttpPort() + "got actual"+ actual);
acEvent = new AcEventPublisherImpl(ac, actual.split(","), curve.split(","), record);
}
我无法访问ac对象,它在该行100处抛出空指针异常。 重要的是,同一个对象在另一个已经存在的类中自动装配,并且它的工作完全正常。 它是我在这里创建的新类,我无法访问任何这些自动装配的对象。 我也无法使用$ sign访问这些值。这些都在其他课程中完美运作。 这可能是由于包装结构?或者我做错了什么?