2013-04-25 54 views
1

我希望我的服务器在启动时执行一些数据库清理。我尝试将@PostConstruct方法添加到服务来执行此操作,但@Transactional在此不起作用。我所做的任何更改都不会被保留。我怎样才能做到这一点?我可以创建一个具有特定回调的新bean吗?在服务器启动时配置Spring bean回调?

回答

3

你可以在@PostConstruct中调用另一个事务资源来完成工作,因为注入完成了。所以DbPopulator可以使用UserService@PostConstruct中的任何东西,并且一切都是事务性的,并且很好地再次分开。 Singleton bean是在启动afaik时构建的,因此不需要额外的设置。

+0

这似乎只是一个代理问题 – 2013-04-25 22:05:40

+0

谢谢,我会试试这个。 – Osman 2013-04-26 21:21:55

+0

如果我在同一个服务中创建另一个@Transactional函数并调用它,这不起作用。您是否说我需要拨打另一项服务来完成交易部分? – Osman 2013-04-26 21:31:11