Hallo zusammen,
ich hoffe mir kann hier jemand helfen. Ich bin dabei mich in Spring einzuarbeiten und habe ein eigentlich einfaches Mini-Projekt mit den unten angegebenen Klassen angelegt.
Ich versuche gerade die Grundlagen zu verstehen, also Dependency Injection etc.
Das Problem ist nun, dass dieses einfache Beispiel zu einer NullPointerException führt.
Demnach schlägt @Autowired hier fehl. Durch Zufall habe ich herausgefunden, dass es funktioniert wenn ich das Attribut calculation static mache und @Autowired über ein Setter setze. Aber das ergebt für mich irgendwie kein Sinn. Hoffe mir kann das jemand erklären.
Vielen Dank im Voraus.
ich hoffe mir kann hier jemand helfen. Ich bin dabei mich in Spring einzuarbeiten und habe ein eigentlich einfaches Mini-Projekt mit den unten angegebenen Klassen angelegt.
Ich versuche gerade die Grundlagen zu verstehen, also Dependency Injection etc.
Das Problem ist nun, dass dieses einfache Beispiel zu einer NullPointerException führt.
Demnach schlägt @Autowired hier fehl. Durch Zufall habe ich herausgefunden, dass es funktioniert wenn ich das Attribut calculation static mache und @Autowired über ein Setter setze. Aber das ergebt für mich irgendwie kein Sinn. Hoffe mir kann das jemand erklären.
Vielen Dank im Voraus.
Java:
@SpringBootApplication
public class SimpleAppApplication {
public static void main(String[] args) {
SpringApplication.run(SimpleAppApplication.class, args);
Calculator calculator = new Calculator();
calculator.sum(1, 2);
}
}
Code:
public interface Calculation {
int calculate(int... summands);
}
Java:
@Component
public class Addition implements Calculation {
@Override
public int calculate(int... summands) {
int sum = 0;
for (int i : summands) {
sum += i;
}
return sum;
}
}
Java:
@Component
public class Calculator {
@Autowired
private Calculation calculation;
public Calculation getCalculation() {
return calculation;
}
public void sum(int a, int b) {
System.out.println(calculation.calculate(a, b));
}
}