#java #spring #programowanie
private static class EchoClientHandler extends Thread {
// fields
private Socket clientSocket;
private PrintWriter out;
private BufferedReader in;
private DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
private ReportService reportService;
// constructors
public EchoClientHandler(Socket socket) {
this.clientSocket = socket;
}
Potrzebuję pomocy. Mam konstruktor, w którym argumentem jest Socket. Potrzebuję wstrzyknąć klasę ReportService. Jak tego dokonać?
private static class EchoClientHandler extends Thread {
// fields
private Socket clientSocket;
private PrintWriter out;
private BufferedReader in;
private DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
private ReportService reportService;
// constructors
public EchoClientHandler(Socket socket) {
this.clientSocket = socket;
}
Potrzebuję pomocy. Mam konstruktor, w którym argumentem jest Socket. Potrzebuję wstrzyknąć klasę ReportService. Jak tego dokonać?
- Najlepsze
- Wszystkie komentarze

krasnoludkolo
4
@tomex1717: dodać do konstruktora?
tomp3
1
@Ewentualnie: Tylko po co robić takie "workaroundy", gdy można to zrobić po ludzku i obiektowo wykorzystując Dependency Injection, jak zaproponował @krasnoludkolo ?
konto usunięte
0
@tomex1717: Mozna to zrobić na pare sposobów, np zrob sobie jakas klaske ktora autowire ApplicationContext a później wystaw go przez statyczna metodę i później możesz sobie z tego zabrac beana po nazwie albo po klasie w Twoim EchoClientHandler
tomex1717 Autor
0
@tomp3 nie doprecyzowalem pytania. Powyższa klasa jest inner klasa. Zrobilem to tak ze w outer klasie autowireowalem reportservice i jak tworzę instancje echo clienthandler to przekazuję report service i socketa i konstruktor wyglada tak jak napisal @krasnoludkolo.
konto usunięte
0
@tomex1717: myślałem, ze na rozwiązanie typu przekazanie do konstruktora to byś wpadł xD
tomp3
0
@tomex1717: Co nie zmienia faktu, że nadal najlepszym rozwiązaniem jest dodanie zależności i wstrzyknięcie przez konstruktor :) (w rozumieniu Dependency Injection jako wzorzec, a nie jako właściwość kontenera IoC).






