Hi,
may be a bit of a dumb question, but I found out that while injecting one seam component, actually two object instances are created. I played around with the helloworld seam remoting example and created a new component HelloModel
that gets injected into HelloAction
like this :
@In(create = true, value = helloModel
)
private HelloModel model = null;
Inside the HelloModel
components constructor, I've placed a log statement like this :
public HelloModel() {
log.info(HelloModel() instantiated
+ this.hashCode());
}
If I now access the helloworld example, I can see the following output in the logs :
2008-06-22 10:05:44,339 INFO [org.jboss.seam.example.remoting.HelloAction] HelloAction() instantiated[10455745]
2008-06-22 10:07:25,361 INFO [org.jboss.seam.example.remoting.HelloModel] HelloModel() instantiated[8619693]
2008-06-22 10:07:25,391 INFO [org.jboss.seam.example.remoting.HelloModel] HelloModel() instantiated[10967064]
Anyone any idea why injection creates two instances of the HelloModel
component ? I'm not saying that this necessarily is a bug, it's certainly that I don't understand the injection mechanism here - anyway, I'd love to understand what's happening here and why this is needed.
Any help appreciated :-)
Cheers, Joerg.
One is the 'proxied' one (i.e. the one seam uses todo the IoC injection stuff)