Questa domanda potrebbe sembrare un po 'strana. Supponiamo che abbia un servizio che voglio usare in una classe di utilità che ha alcuni metodi statici. Il servizio è un bean Spring, quindi naturalmente userò un setter e (@Autowired) per iniettarlo nella mia classe di utilità. Come menzionato nella documentazione di Spring, tutti i bean sono statici nel contesto bean. Quindi, quando vuoi iniettare un bean in una classe, non devi usare il modificatore "statico". Vedere di seguito:Qual è il modo corretto di utilizzare un bean iniettato in un metodo statico?
public class JustAClass{
private Service service;
public void aMethod(){
service.doSomething(....);
}
@Autowired
public void setService(Service service){
this.service = service;
}
}
Ora tornare a quello che ho detto prima (Uso del servizio in un metodo statico):
public class JustAClass{
private static Service service;
public static void aMethod(){
service.doSomething(....);
}
@Autowired
public void setService(Service service){
this.service = service;
}
}
anche se il servizio è statico, sono costretto a mettere statica dietro la sua definizione. Questo è un po 'contro-intuitivo per me. è sbagliato? o è un modo migliore? Grazie
Questo è bello, lavora per me! – Kaunteya
È qualcosa che sarebbe fatto regolarmente? O c'è un approccio diverso di solito usato in queste situazioni? –