Spring IoC - Proxy zwraca NullPointerException przy próbie bezpośredniego dostępu do pola - z kolei działa gdy wywołuje jego metodę

0

Mam taką niezrozumiałą sytuację w Spring IoC i SpringMVC

Napisałem klasę która służy mi za pseudo konfigurację działającą tylko w pamięci programu:

@Component
@Qualifier("conf")
@Scope(value=WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class RuntimeConfiguration{
 

Klasę tę wstrzykuję w kontrolerze, gdzie ją 'wypełniam' parametrami.
Następnie klasa ta jest pobierana gdzieś w logice aplikacji za pomocą adnotacji @Autowired, ale musi być to sama instancja jak w kontrolerze (ze względu na parametry które chciałbym pobrać):

 @Autowired
                      @Qualifier("conf")
    RuntimeConfiguration conf; 
 

Wcześniej próbowałem uzyskać bezpośrednio dostęp do pola zmiennej "conf" z powyższego kodu źródłowego w taki sposób:

 this.durationTime.set(Integer.parseInt(conf.args.get(RuntimeConfiguration.ARGS_TIME_LIMIT)[0]));
 

I Proxy zastępujące klasę RuntimeConfiguration wyrzucało NullPointerException o_O.

Teraz zmieniłem to na:

this.durationTime.set(Integer.parseInt(conf.getTimeLimit()));

/// czyli:
 public int getTimeLimit(){
            return (int) args.get(RuntimeConfiguration.ARGS_TIME_LIMIT);
        }

.. i działa.

Może mi ktoś to wytłumaczyć?
Bardzo mnie to zastanawia.

Pozdrawiam i przepraszam za skąpy kod źródłowy.

0

RuntimeConfiguration to proxy jak zreszta zdefiniowałes...więc access tylko przez metody publiczne lub interfejs

1 użytkowników online, w tym zalogowanych: 0, gości: 1