2012-03-24 12 views

risposta

5

È possibile utilizzare @Autowired su un costruttore o su un metodo con un altro nome. Personalmente preferisco la seconda opzione.

@Autowired 
public MyClass(DataSource dataSource) { 
    super(); 
    setDataSource(dataSource); 
} 

@Autowired 
public void setDs(DataSource dataSource) { 
    setDataSource(dataSource); 
} 
+0

Un'altra soluzione è quella di iniettare template (che è thread-safe !!) al posto di configurazione 'DaoSupport': http://stackoverflow.com/a/ 21992433/173149 – gavenkoa

+0

Dovrebbe iniziare a utilizzare \ @Inserisci ora, piuttosto che l'annotazione \ @Autowired. –

1

Un'altra opzione è questo:

@Autowired 
    private DataSource ds; 

    @Override 
    protected void initDao() throws Exception { 
     super.initDao(); 
     setDataSource(ds); 
    }