Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

AbstractTransactionalSpringContextTests lazy loading beans

 
Ganesh Gowtham
Ranch Hand
Posts: 225
IBM DB2 Eclipse IDE Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi ,

I had written class which extends “AbstractTransactionalSpringContextTests” for testing my beans instantiated via spring framework .

I had annotated all java classes eligible for spring to load with @Service,@Autowire,@Qualifier in XML along with component scanning with pkg which has annotated classes .

Issue I face when I tried to inject properties (with autowire ) for classes which is not apart of component scanning ( I purposefully left those packages in scanning, as I am not interested in testing / loading the class)
Spring does because required is set to true by default in Autowired class.
Hence to resolve this issue , I added “default-lazy-init="true" in xml , which resolved my issue .

Even with “AbstractTransactionalSpringContextTests” we have that option using “setDependencyCheck(false) ".it is not working as expected .

I prefer way to do in test class level , rather than changing xml ( FYI going fwd we would like to use same XML for application and testing )

 
Mark Spritzler
ranger
Sheriff
Posts: 17278
6
IntelliJ IDE Mac Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Why not just put

@Autowired(required=false) in your code.

Mark
 
Ganesh Gowtham
Ranch Hand
Posts: 225
IBM DB2 Eclipse IDE Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Since i woudl like to use same pojo for testing too ( i made required=false ) all beans will load on need basis in main app too ...

i got solution from below licnk , which works on manuplating DOm tree before spring intilaises

.Spring Link

Thanks Mark for help .
 
Mark Spritzler
ranger
Sheriff
Posts: 17278
6
IntelliJ IDE Mac Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ganesh Gowtham wrote:Since i woudl like to use same pojo for testing too ( i made required=false ) all beans will load on need basis in main app too ...

i got solution from below licnk , which works on manuplating DOm tree before spring intilaises

.Spring Link

Thanks Mark for help .


I still don't think lazy loading is your real true solution to your problem. Yes, it solves it, but isn't what lazy loading is there for to resolve.

In your main application if you put required=false doesn't mean that it won't autowire it. It means if you don't have a bean of that type, that is fine, it is not set and null. But if there is a bean of that type, then it is set to that bean.

Mark
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic