简体   繁体   English

如何使用 PropertyChangeSupport 和 PropertyChangeListener?

[英]How to use PropertyChangeSupport and PropertyChangeListener?

@Controller
@RequestMapping("/scrape")
public class ScrapeController {
    private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        this.pcs.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        this.pcs.removePropertyChangeListener(listener);
    }

    @GetMapping({"/", ""})
    public String scrape(){

        this.pcs.firePropertyChange("value", "wait", "scrape"); // Breakpoint.
        return "done";
    }
}


public class ScrapeService implements PropertyChangeListener {

    private final ScrapeController sc;

    public ScrapeService(ScrapeController sc) {
        this.sc = sc;
        sc.addPropertyChangeListener(this);
    }

    public void propertyChange(PropertyChangeEvent evt) {
        System.out.println("Name      = " + evt.getPropertyName()); // Breakpoint.
        System.out.println("Old Value = " + evt.getOldValue());
        System.out.println("New Value = " + evt.getNewValue());
    }
}

This project is based on Spring.本项目基于Spring。 But I don't believe that the problem is Spring related.但我不认为问题与 Spring 有关。

There are two breakpoints here.这里有两个断点。 The debugger stops at the first breakpoint in the scrape method where I fire the property change.调试器在我触发属性更改的scrape方法中的第一个断点处停止。 But the debugger fails to stop at the breakpoint in the propertyChange method.但是调试器无法在propertyChange方法中的断点处停止。 So the debug messages are not being printed.所以调试消息没有被打印出来。

My guess is that the ScrapeService is never actually instantiated and added to the ScrapeController 's addPropertyChangeListener method.我的猜测是ScrapeService从未实际实例化并添加到ScrapeControlleraddPropertyChangeListener方法中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 PropertyChangeSupport对PropertyChangeListener的弱引用? - PropertyChangeSupport with weak references to PropertyChangeListener? Java使用PropertyChangeSupport和PropertyChangeListener检测变量更改 - Java Detect Variable Change Using PropertyChangeSupport and PropertyChangeListener 我是否应该在Java bean中为Web应用程序添加对PropertyChangeSupport和PropertyChangeListener的支持? - Should I add support for PropertyChangeSupport and PropertyChangeListener in a Java bean for a web application? 这是使用PropertyChangeListener接口的好方法吗? - Is it a good way to use PropertyChangeListener interface? 从JSON(Gson)反序列化时如何初始化PropertyChangeSupport? - How to initialize PropertyChangeSupport when deserializing from JSON (Gson)? SWT中的PropertyChangeSupport。 如何在表中监听通知? - PropertyChangeSupport in SWT. How to listen for notifications e.g. in a Table? SpinnerNumberModel的PropertyChangeSupport - PropertyChangeSupport for SpinnerNumberModel 不知道如何在 JFormattedTextField 上修复我的 PropertyChangeListener - Don't know how to fix my PropertyChangeListener on a JFormattedTextField SwingWorker结束,PropertyChangeListener监听,但我如何回到EDT? - SwingWorker ends, PropertyChangeListener listens, but how do I get back to EDT? Java 属性更改监听器 - Java PropertyChangeListener
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM