Scrivo una nota sul comportamento dell’annotazione @Value, che non ho trovato descritto nel javadoc: quando questa annotazione è applicata ai parametri di un metodo, è necessario applicare @Autowired al metodo stesso, perché altrimenti l’autowiring di Spring non si attiva.

Un esempio di utilizzo può essere il seguente pezzo di codice:

@Component
public class Example {
  @Autowired
  public void setParams(
      @Value("${param1}") String param1,
      @Value("${param2}") String param2)
  {
    // do something
  }
}

Testato con:

  • Java 6
  • Spring 4.1
Annunci