Wzorzec projektowy mający na celu zmniejszenie sprzężeń między komponentami poprzez dynamiczne wprowadzanie do komponentu oprogramowania zależności, których potrzebuje on do działania.
Zostało już opublikowanych kilka pytań z konkretnymi pytaniami dotyczącymi wstrzykiwania zależności , na przykład kiedy z niego korzystać i jakie są dostępne ramy. Jednak, Co to jest zastrzyk zależności i kiedy / dlaczego należy go stosować lub nie?
Przeglądam blogi na SpringSource, a na jednym z blogów autor używa @Injecti przypuszczam, że on też może z niego korzystać @Autowired. Oto fragment kodu: @Inject private CustomerOrderService customerOrderService; Nie jestem pewien różnicy między @Injecti @Autowireddoceniłbym to, gdyby ktoś wyjaśnił ich różnicę i którego użyć w jakiej sytuacji?
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Zamknięte 6 lat temu . Zablokowana . To pytanie i odpowiedzi są zablokowane, ponieważ pytanie jest nie na temat, ale ma znaczenie historyczne. Obecnie nie akceptuje nowych odpowiedzi ani interakcji. Używam Dependency Injection (DI) od dłuższego czasu, …
Próbuję zrozumieć zastrzyki zależności (DI) i po raz kolejny zawiodłem. To po prostu wydaje się głupie. Mój kod nigdy nie jest bałaganem; Prawie nie piszę funkcji wirtualnych i interfejsów (chociaż robię to raz na niebieskim księżycu), a cała moja konfiguracja jest magicznie serializowana do klasy za pomocą json.net (czasem za …
Według artykułu napisanego przez Martina Fowlera , odwrócenie kontroli jest zasadą, w której przepływ sterowania programem jest odwrócony: zamiast programisty kontrolującego przepływ programu, źródła zewnętrzne (szkielet, usługi, inne komponenty) przejmują kontrolę to. To tak, jakbyśmy podłączali coś do czegoś innego. Wspomniał przykład o EJB 2.0: Na przykład interfejs Session Bean …
Większość przytoczonych przykładów użycia wstrzykiwania zależności możemy rozwiązać również przy użyciu wzorca fabrycznego. Wygląda na to, że jeśli chodzi o użycie / projektowanie, różnica między wtryskiem zależności a fabryką jest rozmyta lub cienka. Kiedyś ktoś mi powiedział, że to, jak go używasz, robi różnicę! Kiedyś użyłem StructureMap do kontenera DI, …
Czytałem wiele artykułów wyjaśniających, jak skonfigurować Entity Framework, DbContextaby tylko jeden był tworzony i używany na żądanie HTTP za pomocą różnych frameworków DI. Dlaczego to dobry pomysł? Jakie korzyści zyskujesz stosując to podejście? Czy istnieją sytuacje, w których byłby to dobry pomysł? Czy są rzeczy, które można zrobić za pomocą …
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
Której adnotacji @Resource ( jsr250 ) lub @Autowired (specyficzny dla wiosny) należy użyć w DI? Z powodzeniem korzystałem zarówno w przeszłości, jak @Resource(name="blah")i@Autowired @Qualifier("blah") Instynktownie @Resourcetrzymam się tagu, ponieważ został ratyfikowany przez ludzi jsr. Czy ktoś ma na to mocne przemyślenia?
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
W Javie IoC / DI jest bardzo powszechną praktyką, która jest szeroko stosowana w aplikacjach internetowych, prawie wszystkich dostępnych frameworkach i Java EE. Z drugiej strony istnieje również wiele dużych aplikacji internetowych w Pythonie, ale oprócz Zope (które, jak słyszałem, powinno być naprawdę okropne w kodowaniu), IoC nie wydaje się …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 3 lata temu . Popraw to pytanie Ryzykując wkroczenie na terytorium świętej wojny, jakie są mocne i słabe strony …
Oba wzorce wydają się implementacją zasady inwersji kontroli. Oznacza to, że obiekt nie powinien wiedzieć, jak skonstruować swoje zależności. Dependency Injection (DI) wydaje się używać konstruktora lub setera do „wstrzykiwania” swoich zależności. Przykład użycia wtrysku konstruktora: //Foo Needs an IBar public class Foo { private IBar bar; public Foo(IBar bar) …
Jak ręcznie rozwiązać typ za pomocą wbudowanej platformy wstrzykiwania zależności ASP.NET Core MVC? Konfiguracja kontenera jest dość łatwa: public void ConfigureServices(IServiceCollection services) { // ... services.AddTransient<ISomeService, SomeConcreteService>(); } Ale jak mogę rozwiązać problem ISomeServicebez wykonywania zastrzyku? Na przykład chcę to zrobić: ISomeService service = services.Resolve<ISomeService>(); Nie ma takich metod w …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.