JavaEE - zależności a nowa instancja obiektu

JavaEE - zależności a nowa instancja obiektu
SU
  • Rejestracja:ponad 10 lat
  • Ostatnio:5 miesięcy
  • Postów:247
0

Cześć. W jaki sposób w JavaEE mogę utrzymać zalezności (@Inject) w klasie, której chcę stworzyć nową instancję?

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4708
1

Przekazać, konstruktorem, przez new, jak ludzie.


jeden i pół terabajta powinno wystarczyć każdemu
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Jeśli chcesz tworzyć nową instancje, to na 99% nie chcesz tam mieć Inject żadnego. Nie każdy (a raczej bardzo niewiele) obiekt powinien być zarządzany przez kontener! W praktyce ma to sens dla infrastruktury, moze repozytoriów i innych singletonowych rzeczy, ale jak tworzysz gdzieś nową instancje, to pewnie to jakiś obiekt domenowy i nie bardzo widze sens w zarządzaniu go z kontenera. Weź mu zwyczajnie ten parametr przekaż.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
damianem
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 miesiące
  • Postów:205
0

Możesz też wstrzykiwać factory, które będzie tworzyło te obiekty :)

KamilAdam
uuu, Service Locator Pattern widzę. W Javie chyba zawsze to był antywzorzec. za to C# chyba dopiero od jakiegoś czasu https://devstyle.pl/2016/02/11/antywzrorzec-service-locator/
damianem
factory != service locator, chodziło mi o to, że jeśli ktoś nie chce tworzyć obiektów z palca (nie wnikając w powody) to może sobie wstrzyknąć FooFactory tworzące Foo (może być nawet Supplier<Foo>), a nie od razu cały kontener DI
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0

Najgłupsze rozwiązanie jakie widziałem to było wstrzykiwanie zależności aspektem. Robiło się new SaleService() i miał on powstrzykiwane już wszystkie zależności. Ale to w Springu było. Nie wiem czy w Javie EE też można


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
jarekr000000
Ale jak? AspectJ ? Bo to już grube. Szczerze mówiąc chyba tylko jakąś instrumentacją kodu bym dał radę.
KamilAdam
Spring AOP to robił, ale w jaki sposób to nie mam pojęcia

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.