I'm developing a Spring Data JPA application, and I've created an AttributeConverter
class in order to save an ArrayList
of objects as JSON in a database column. Inside this class I need to make use of a class I have defined as a Spring Bean.
As the AttributeConverter
class is managed by Hibernate, it seems to be instantiated before any Spring beans are created, and therefore DI does not seem to work (the Spring Bean in the AttributeConverter
class is null
, and I'm getting a NullPointer
exception thrown). So at the moment I'm creating another instance of the said bean to be able to use it in the AttributeConverter
class (which defeats the purpose of DI).
I've also tried creating a Util class (annotated with @Component
) which implements ApplicationContextAware
, which provides a method giving the SpringBean (cxt.getBean(BeanClass.class)
). But this also is instantiated after the AttributeConverter
.
Is there any idea of how this can be solved?
Thank you.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…