Aktywne Wpisy
Weźcie mi to wyjaśnijcie, bo nie jeden raz jestem świadkiem podobnych sytuacji. Weźmy przykład imprezy: WESELE
Ja z moją kobietą (programista + prawnik) 1-2 w nocy: zaorani, zmęczeni, głowy już wiszą nad stołami dosłownie utrzymywane siłą woli i zaraz zwijamy do domu
w tym samym czasie jakieś robolskie pary typu mechanik/budowlaniec + kasjerka/fryzjerka/monterka produkcyjna zapyerdalający po 12h dziennie wywijają na parkiecie, drą pisdy, pełni energii, dopiero się rozkręcają.
My sen po 8h,
Ja z moją kobietą (programista + prawnik) 1-2 w nocy: zaorani, zmęczeni, głowy już wiszą nad stołami dosłownie utrzymywane siłą woli i zaraz zwijamy do domu
w tym samym czasie jakieś robolskie pary typu mechanik/budowlaniec + kasjerka/fryzjerka/monterka produkcyjna zapyerdalający po 12h dziennie wywijają na parkiecie, drą pisdy, pełni energii, dopiero się rozkręcają.
My sen po 8h,
KRCZVSK +534
Chciałbym tylko powiedzieć, że tak wygląda prawdzie dobro. Ubrane jest w roboczy w kombinezon, stojące na tle śmieciarki. W pierwszej osobie opowiada o tym, jak walczyło ze złem.
Popatrzcie na nie proszę. Posłuchajcie, co mówi.
Gdyby takiego dobra wśród nas było więcej, Maurycy by żył.
#takaprawda #poznan #zabojstwo #feels
Popatrzcie na nie proszę. Posłuchajcie, co mówi.
Gdyby takiego dobra wśród nas było więcej, Maurycy by żył.
#takaprawda #poznan #zabojstwo #feels
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Spring jednak utrudnia pisanie poprawnego kodu obiektowego. Człowiek chce napisać normalną klasę, która posiada dane i bazujące na nich zachowania, ale nie da się w prosty sposób.
Jeśli chcemy dodać dane instancji, to najłatwiej to zrobić przez new, ale wtedy obiekt nie będzie zarządzany przez Springa i nie da się wstrzyknąć do niego zależności.
Jedyne rozwiązanie, jakie widzę, to wstrzyknąć pustego beana ze scope "prototype", a później przez setery poustawiać mu wszystkie dane, ale to bardzo zaśmieca kod i uniemożliwia tworzenie niemutowalnych klas, których jestem zwolennikiem.
@dog_meat: nie mam pojęcia w czym widzisz problem
@PrzegrywWykopek: no właśnie w tym, co napisałem wyżej. Zgodnie z OOP klasa powinna mieć indywidualne dane i przypisane do nich zachowania. A tu się tak
https://www.baeldung.com/spring-5-functional-beans
Nie wygląda to bardzo elegancko, ale powinno załatwić sprawę.
(klasa kontekstu kontenera oczywiście powinna być zmieniona)
https://www.youtube.com/watch?v=ILBX9fa9aJo
polecam się zapoznać
@witajswiecie: Nie do końca o to mi chodzi. Ja chciałbym tworzyć wiele instancji klasy, którea posiada indywidualne dane, wewnątrz której mogę wstrzyknąć zależnośc zarządzaną przez Springa.
Wrzuciłem prosty przykład na https://pastebin.com/pLMmEexa (to tylko kod wymyślony na potrzeby przykładu). <-- zawołam jeszcze @Ewentualnie i
@Component
class KlasaPodKontroląSpringa{
@Autowired
Service service;
void cosTam(){
new KlasaNiePodKontrolaSpringa(service);
}
}
@Ewentualnie: wiem, że są obejścia i mogę uzyskać kontekst, i pobrać beana. Ale chodziło mi o to, że Spring raczej zniechęca do pisania zgodnego z prawdziwym OOP
@witajswiecie: To jest właśnie chyba najczystsze rozwiązanie. Średnio podoba mi się łączenie danych i zależności ale chyba tak jest najlepiej. Super jest to właśnie w Scali, gdzie może być wiele list argumentów. Jeśli te zależności są wykorzystywane przez pojedynczą metodę, to wtedy lepiej przekazać je a argumencie metody. Ale jeśli używa się ich w wielu metodach, trzeba wrzucić do
to że łączysz dane i zależności jest winą przyjętej architektury a nie springa, scalowe implicit wcale nie rozwiązuje problemu w tej kwestii, nadal łączysz dane i logikę, tyle że to łączenie dokonuje się na poziomie kompilacji a nie przez kontener DI
@witajswiecie: przecież łączenie logiki i danych jest główną podstawą programowania obiektowego (przeciwieństwem jest programowanie strukturalne, które udaje obiektowe, które rozdziela logikę i dane, opakowując to w klasy)
private @Autowired AutowireCapableBeanFactory beanFactory;
i później gdzieś w metodzie:
MyService create() {
MyService service = new MyService();
beanFactory.autowireBean(service);
}
O coś takiego chodzi?
po prostu osobiście nie widzę powodu dla którego przekazywanie niejawne parametrów rodem ze scali miałoby jakąś przewagę poza tym że ładniej wygląda, tylko dlatego że czegoś nie widzisz bezpośrednio w kodzie, mimo że nadal tam jest podczas kompilacji