Because Spring can't access any fields or methods before the object is created (which is done through the constructor).

So Spring instantiates the object using the constructor and *then* injects the properties.

The only way around this is to use Constructor injection (which is usually a bad idea). I think what you should do is move your code out of the constructor and into an initialization method:

 @PostConstruct
 public void init(){
 // do stuff with entitymanager here
 }