皆さん、こんにちは私がやろうとしているのは、@Value と @PostConstruct を使用して CustomDetail オブジェクトにいくつかのプロパティを事前に入力し、この事前入力されたオブジェクトをサービスで使用することですが、オブジェクトがサービス クラスに到着すると、すでに null です...
更新しました!!!!これは正しいコードです
@Service
public Class CustomDetail(){
ProxyObject prx;
...
@Value("#{myProperties.proxy.address}")
String propertyPrx;
@PostConstruct
private void setProperty(){
prx= new ProxyObject(propertyPrx);
}
.....
....
}
これで、setProperty() メソッドは効果的に正しく機能します。デバッグ時に Tomcat を起動すると、propertyPrx が適切であり、オブジェクト prx が null ではないことがわかります...したがって、新しい ProxyObject(propertyPrx) は問題なく呼び出されます。この時点ですべて大丈夫。今、サービス部分に移動して使用しようとすると
public Class ServiceClient(){
....
...
@Autowired
CustomDetail cDetail;
....
...more code
cDetail.someMethod(a,n,y); //<---cDetail Object is null so I get a NullPointerException
}
なぜこれが起こっているのか、Tomcatが初めて起動したときにのみ@PostConstructが初期化される理由と、サービスクラスに注入しようとしたときに、初期化されなかった場合のように、すでにnullになっている理由を教えてください...私はあなたの助けに感謝しますSpringMVC 3.1 Tomcat を使用する