Sto utilizzando Mojarra 2.2.12 e nel nostro progetto abbiamo alcuni fagioli @ApplicationScoped
. Ad esempio:Concorrenza di @ApplicationScoped Fagioli gestiti JSF
@ManagedBean
@ApplicationScoped
public class AppScopedBean{
private int commonValueForClients;
//GET, SET
public void evalNew(){
int newCommonVal;
//Evaluation of the new value, doesn't depend on the commonValueForClients
commonValueForClients = newCommonVal;
}
}
La mia domanda è: dovremmo preoccuparci della visibilità del nuovo valore assegnato?
Non è stato possibile trovare in the spec che l'infrastruttura JSF deve sincronizzare l'accesso ai campi del bean @ApplicationScoped
. Quindi, in particolare per Mojarra 2.2.12, dovremmo dichiarare il campo come volatile
o sincronizzarlo in modo esplicito?
Dal mio punto di vista, si è scelto un ambito di bean errato. Il dolore severo e la sofferenza saranno le conseguenze della mancata scelta del giusto ambito di un particolare fagiolo gestito. – Tiny
@Tiny Forse, il caching non è strettamente adatto per i fagioli gestiti, credo. È piuttosto uno scopo di servizio. –