在Java Wicket 6中,我试图了解在不再使用该页面/组件时如何在页面或组件中获得通知。
上下文是我有一个配置服务,可以添加监听器以在配置更改/重新加载时通知。
显然,如果不再需要页面/组件,那么我应该将其作为服务的监听器删除,但我找不到通知方式或事实。
onRemove()没有剪切它,因为它似乎没有在页面或页面中的组件上调用,因为我没有明确地删除任何东西。我只是让页面/组件漂移到以太网中。
关于如何清理我的资源以确保我的听众列表/内存占用空间在一段时间内没有气球的任何想法?
我的网页是有状态的,顺便说一句(虽然我不确定他们是否需要atm)。配置服务通过@SpringBean注入到页面/组件中。
传播配置的一种可能方式是更新它以使页面仅侦听,然后将Wicket事件触发到包含的组件。这样可以减少服务监听器的数量,但是如果组件引用了配置服务,那么这并不是很好,然后由其他需要重新配置的东西告知。也许。
即便如此,通过上述解决方案,我仍然希望在不再需要时从侦听器列表中清除页面。
答案 0 :(得分:1)
使用@SpringBean
,你可以不在Page / Component和真实服务实例之间建立一个硬参考!
@SpringBean
注入一个(可序列化的)代理,它具有从Spring的ApplicationContext中查找Spring bean的逻辑。所以我认为你没有什么可以清理的。