Domanda

Sto cercando di fare riferimento a un altro oggetto che ho definito in un file di configurazione Spring all'interno di un'espressione. In particolare, sto cercando di popolare una proprietà con il valore di un'espressione in cui chiamo un metodo e quindi una proprietà sull'oggetto restituita da quel metodo.
Ho provato quanto segue (i nomi sono stati cambiati):

<property name="NullableIntProperty"
          expression="#{Some.Object.Id}.Get().NullableIntValue"/>

dove Some.Object.Id è un riferimento a un altro oggetto che ho definito in un file di configurazione come:

<object id="Some.Object.Id" ... >

ma la mia app non si avvia con l'eccezione di analisi in attesa di " COLON " trovato '}' . Penso che si aspetti uno spazio dei nomi, ma non sto trovando la documentazione per questo.

Ho provato diverse cose, ma ovunque ho raggiunto un vicolo cieco. Inizialmente ho provato una combinazione di MethodInvokingFactoryObject e PropertyRetrievingFactoryObject che utilizziamo in altri luoghi per tipi non annullabili, ma ciò non riesce per nullable che in realtà sono null poiché Spring vede una factory di oggetti che restituisce null come un errore (che di solito è).

È stato utile?

Soluzione

Puoi usare la sintassi dell'espressione @ (object-id-here) su recupera un oggetto dal contesto Spring usando un'espressione :

<property name="NullableIntProperty"
          expression="@(Some.Object.Id).PropertyOnSomeObject"/>

Altri suggerimenti

Cambiare # in $ dovrebbe risolverlo, credo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top