@Configurable-Beans not working with JPA-EntityListeners in Spring Boot -


i having strange problem custom jpa-entity listener i've created in spring boot application. i'm trying use springs @configurable mechanism configure entitylistener (as seen in springs auditingentitylistener) spring refuses recognize listener used in @entitylisteners-annotation on jpa entity. if not configured on jpa entity, listener gets wired/configured spring should.

i've created example project junit-test demonstrate problem: https://github.com/chrisi/aopconfig/find/master

@springbootapplication @enablespringconfigured @enableloadtimeweaving public class application {    public static void main(string[] args) throws exception {     springapplication.run(application.class, args);   } } 

the entitylistener:

/**  * bean not instanciated spring should configured spring  * because of {@link configurable}-annotation.  * <p>  * configuration works if <code>unmanagedbean</code> not used <code>entitylistener</code>  * via {@link javax.persistence.entitylisteners}-annotation.  *  * @see fooentity  */ @configurable public class unmanagedbean {    @autowired   private managedbean bean;    public int getvalue() {     return bean.getvalue();   } } 

the bean want injected in entitylistener/unmanagedbean:

/**  * bean instanciated/managed spring , injected  * {@link unmanagedbean} in case <code>unmanagedbean</code> not used jpa-entitylistener.  */ @component @data public class managedbean {   private int value = 42; } 

the entity listener should used:

/**  * simple entity's purpose demonstrate  * annotated <code>@entitylisteners({unmanagedbean.class})</code>  * springs configurable mechanism not longer work on {@link unmanagedbean}  * , therefore <code>configurabletest.testconfigureunmanagedbean()</code> fails.  */ @entity @entitylisteners({unmanagedbean.class}) // uncomment make test fail public class fooentity {    @id   private long id;    private string bar; } 

and test shows wiring not working listener used:

@runwith(springjunit4classrunner.class) @springapplicationconfiguration(classes = application.class) public class configurabletest {    /**    * test checks if managedbean injected unmanagedbean    * spring after created <code>new</code>    */   @test   public void testconfigureunmanagedbean() {     unmanagedbean edo = new unmanagedbean();     int val = edo.getvalue();     assert.assertequals(42, val);   } } 

the junit-test (the wiring of entitylistener/managedbean) fails annotation @entitylisteners({unmanagedbean.class}) in fooentity activated.

is bug or did miss else?

in order run test have use -javaagent:spring-instrument-4.1.6.release.jar on commandline provide jar file in working directory.

this "condensed" version of question asked earlier: @configurable not recognized in springboot application


Comments

Popular posts from this blog

OpenCV OpenCL: Convert Mat to Bitmap in JNI Layer for Android -

android - org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope -

python - How to remove the Xframe Options header in django? -