Commit e2253a88 by Patryk Czarnik

Rozważania na temat wielu implementacji interfejsu

parent 89dc6bcb
package com.example.demo;
import java.util.List;
// @Component("inna") i potem za pomocą Qualifier wskazać w miejscu użycia (podczas wstrzykiwania)
// albo można za pomocą @Primary wskazać, że teraz ten komponent ma być wybrany
public class InnaLogika implements LogikaKalkulatora {
@Override
public long oblicz(long liczba1, long liczba2, String operacja) {
long wynik = switch(operacja) {
case "+" -> liczba1 + liczba2 + 1000;
case "-" -> liczba1 - liczba2 + 1000;
case "*" -> liczba1 * liczba2 + 1000;
case "/" -> liczba1 / liczba2 + 1000;
default -> 0L;
};
return wynik;
}
@Override
public List<String> getHistoriaDzialan() {
return List.of("Ala", "Ola", "Ela");
}
}
...@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
@Controller @Controller
@RequestMapping("/kalkulator") @RequestMapping("/kalkulator")
public class KalkulatorController { public class KalkulatorController {
//@Qualifier("inna")
@Autowired @Autowired
private LogikaKalkulatora logikaKalkulatora; private LogikaKalkulatora logikaKalkulatora;
......
...@@ -18,6 +18,10 @@ public class WstrzykiwaniePrzezKonstruktor { ...@@ -18,6 +18,10 @@ public class WstrzykiwaniePrzezKonstruktor {
this.logikaKalkulatora = logikaKalkulatora; this.logikaKalkulatora = logikaKalkulatora;
} }
// public WstrzykiwaniePrzezKonstruktor(@Qualifier("inna") LogikaKalkulatora logikaKalkulatora) {
// this.logikaKalkulatora = logikaKalkulatora;
// }
@GetMapping(path="/liczenie", produces="text/plain") @GetMapping(path="/liczenie", produces="text/plain")
@ResponseBody @ResponseBody
public String liczenie(Long liczba1, Long liczba2, String operacja) { public String liczenie(Long liczba1, Long liczba2, String operacja) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment