在服务器启动时配置Springbean回调?
我希望我的服务器在启动时进行一些数据库清理。我尝试向服务添加@PostConstruct方法来实现这一点,但是@Transactional在那里不起作用。我所做的任何更改都不会持久化。我怎样才能做到这一点?我可以创建一个具有特定回调的新bean吗 您可以在@PostConstruct中调用另一个事务性资源来完成这项工作,因为注入随后完成。因此,在服务器启动时配置Springbean回调?,spring,hibernate,Spring,Hibernate,我希望我的服务器在启动时进行一些数据库清理。我尝试向服务添加@PostConstruct方法来实现这一点,但是@Transactional在那里不起作用。我所做的任何更改都不会持久化。我怎样才能做到这一点?我可以创建一个具有特定回调的新bean吗 您可以在@PostConstruct中调用另一个事务性资源来完成这项工作,因为注入随后完成。因此,DbPopulator可以使用UserService以及其@PostConstruct中的任何内容,并且所有内容都是事务性的,并且再次很好地分离。Sing
DbPopulator
可以使用UserService
以及其@PostConstruct
中的任何内容,并且所有内容都是事务性的,并且再次很好地分离。Singleton Bean是在启动afaik时构建的,因此不需要额外的设置。true这似乎只是一个代理问题。如果我在同一个服务中创建了另一个@Transactional函数并调用该函数,则该函数不起作用。你是说我需要调用另一个服务来完成事务部分吗?是的,这是真的。通过此调用同一服务上的另一个方法会绕过代理。你需要呼叫另一个服务。也许将FooService注入FooService在这方面有所帮助(在JavaEE中是这样,我不知道它是否与Spring一起工作)。谢谢,我创建了另一个包含@PostConstruct的组件,该组件调用了我的服务。似乎有效。