是否可以将 spring bean 注入由调度程序作业控制的轮询过滤器类 (FClass) 中?我不太明白单例如何应用在这里。
我知道弹簧豆是单例的,所以为了将弹簧豆注入 FClass 类。我需要将 FClass 定义为 bean 并将 DI 添加为属性等。
那么我怎么知道 FClass 是否应该是单例?我假设只能创建单例类和 bean 并对它们进行 DI。
我的问题是:
我需要能够将我的外观 bean xfacade 注入 FClass。x_facacde 处理 dao 对象。它有 Y_dao 和一个作为 DI 注入的 Z_hibernate 会话 bean。
当我尝试创建 StatusPollingFilter (FClass) 的 spring bean 并注入外观 bean 时 - 我得到了一个 null 并且在调试模式下从未调用 setter 进行注入。
问题:我认为这可能与 StatusPollingFilter 的线程/调度程序性质有关,并且由于 spring bean 是单例的,因此它可能无法正常工作。
我正在考虑为 StatusPollingFilter (FClass) 创建一个工厂。但是需要知道这是否正确,并且在我做太多工作并意识到即使那样也行不通之前我走在正确的轨道上,因为问题可能出在其他地方。理想情况下,我只想以最简单的方式更新表格。但我必须使用休眠,因为 DAO 存在,但休眠是使用配置的
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
with /hibernate/TopoObject.hbm.xml
文件。
因此,无论我如何尝试,我总是在会话或注入的外观 bean 上得到空指针异常。在这里阅读一些 QA 似乎是因为 StatusPollingFilter 是使用调度程序实例化的,而不是 spring 它不能知道 DI bean。上述工厂模式在这里也会有所帮助。
我可能还有一个问题,但是当我遇到它时,我会越过那座桥。但只是简单地提一下,以防有人知道我可能遇到的问题......不确定调度程序将如何/如何为实例调用工厂,因为它全部由第 3 方 api 控制 - 它调用 StatusPollingFilter 但我' m 假设如果我将工厂作为类和参数传入它会找到它的方式......但初始部分是主要问题。请忽略后一个华夫饼。提前致谢。