Этот вопрос может показаться немного странным. Предположим, у меня есть Служба, которую я хочу использовать в классе Utility, который имеет некоторые статические методы. Служба является фасолью Spring, поэтому, естественно, я, например, использую сеттер и (@Autowired), чтобы ввести его в мой класс утилиты. Как уже упоминалось в документации Spring, все бобы являются статическими в контексте компонента. Поэтому, когда вы хотите вставить компонент в класс, вам не нужно использовать «статический» модификатор. Смотрите ниже:Каков правильный способ использования инжектируемого компонента в статическом методе?
public class JustAClass{
private Service service;
public void aMethod(){
service.doSomething(....);
}
@Autowired
public void setService(Service service){
this.service = service;
}
}
Теперь возвращаясь к тому, что я говорил первый (Использование службы в статическом методе):
public class JustAClass{
private static Service service;
public static void aMethod(){
service.doSomething(....);
}
@Autowired
public void setService(Service service){
this.service = service;
}
}
Хотя служба статична, я вынужден поставить статический за его определения. Это немного противоречит интуиции. это неправильно? или это лучший способ? Thanks
Это хорошо, работает для меня! – Kaunteya
Это что-то, что будет сделано регулярно? Или существует ли другой подход, обычно используемый в этих ситуациях? –