Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Bean getting initialised everytime, why ?

 
Rahul Shivsharan
Ranch Hand
Posts: 83
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Emplyee interface


PermanentEmpl.java ,



ContractEmpl.java,



Car.java,


SUV.java,


ManagerSer.java,


bean-config-Two.xml,


MainPractise15.java,


now when i run MainPractise15.java, the commandline output is


now if i add attribute as follows


and if i run the main class MainPractise15.java, the output is


Now my question is why ManagerSer is initialized 3 times in first scenario and 2 times in second scenario ?
 
Mark Spritzler
ranger
Sheriff
Posts: 17276
6
IntelliJ IDE Mac Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You have three beans of that type. You are also using Bean Definition inheritence in your configuration. In the first example, the parent <bean> tag get a bean instantiated as well as the other two. In your second version for the parent bean you used the attribute abstract="true", which tells Spring not to instantiate that bean, but just use the bean configuration for the other two. This is the same as creating a parent Java class as abstract or not.

public abstract class Car

public class Honda extends Car

public class Toyota extends Car

in that hierarchy I can only instantiate Honda and Toyota, not Car because it is abstract. It works the same way with <bean> tags if you have <bean abstract="true"> then Spring can't instantiate that bean.

Mark
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic