«dependency-injection» etiketlenmiş sorular

Dinamik olarak çalışması gereken bir yazılım bileşeni bağımlılığına enjekte ederek bileşenler arasındaki bağlantıyı azaltmak için bir tasarım deseni.

11
Dosya sistemi bağımlılığına sahip birim test kodu
Bir ZIP dosyası verilen, gereken bir bileşen yazıyorum: Dosyayı açın. Sıkıştırılmış dosyalar arasında belirli bir dll bulun. Bu dll yansıması ile yükleyin ve üzerine bir yöntem çağırmak. Bu bileşeni birim test etmek istiyorum. Doğrudan dosya sistemi ile ilgilenen kod yazmak için cazipim: void DoIt() { Zip.Unzip(theZipFile, "C:\\foo\\Unzipped"); System.IO.File myDll = …

7
ServiceLocator bir anti-desen midir?
Son zamanlarda Mark Seemann'ın Service Locator anti-pattern hakkındaki makalesini okudum . Yazar, ServiceLocator'ın bir anti-desen olmasının iki ana nedenine dikkat çekiyor: API kullanım sorunu (ki ben çok iyiyim) Sınıf bir Servis bulucu kullandığında, çoğu durumda sınıfın yalnızca bir PARAMETERLESS yapıcısı olduğu için bağımlılıklarını görmek çok zordur. ServiceLocator'ın aksine DI yaklaşımı, …

2
InvalidOperationException: 'Microsoft.AspNetCore.Http.IHttpContextAccessor' türü için hizmet çözülemedi
Asp.net çekirdek RC1 projemi RC2'ye dönüştürmeye başladım ve şimdi IHttpContextAccessorçözülemeyen bir sorunla karşılaştım . Basitlik için Visual Studio Template kullanarak yeni ASP.NET RC2 projesi oluşturdum ASP.NET Core Web Application (.Net Framework). Daha sonra HomeController için yapıcıyı hangi şablonun benim için oluşturduğunu ekledim. public HomeController(IHttpContextAccessor accessor) { } Ve uygulamayı başlattıktan …

4
Alan Enjeksiyonu tam olarak nedir ve nasıl önlenir?
Spring MVC ve Portletlerle ilgili bazı yazılarda alan enjeksiyonunun tavsiye edilmediğini okudum . Anladığım kadarıyla, alan enjeksiyonu şu şekilde bir Fasulye enjekte ettiğiniz zamandır @Autowired: @Component public class MyComponent { @Autowired private Cart cart; } Araştırmam sırasında ayrıca yapıcı enjeksiyonu hakkında da okudum : @Component public class MyComponent { private …

21
Bağımlılık Enjeksiyonu Kapsülleme pahasına mı gelmelidir?
Doğru anlarsam, Bağımlılık Enjeksiyonu için tipik mekanizma, ya bir sınıf yapıcısı ya da sınıfın bir genel özelliği (üyesi) aracılığıyla enjekte etmektir. Bu, enjekte edilen bağımlılığı ortaya çıkarır ve OOP kapsülleme ilkesini ihlal eder. Bu değiş tokuşu belirlemekte haklı mıyım? Bu konuyla nasıl başa çıkıyorsunuz? Lütfen aşağıdaki kendi soruma verdiğim cevaba …

4
Spring'de kendi kendine örneklenen bir nesneye bağımlılıklar nasıl enjekte edilir?
Diyelim ki bir sınıfımız var: public class MyClass { @Autowired private AnotherBean anotherBean; } Sonra bu sınıfın bir nesnesini oluşturduk (veya başka bir çerçeve bu sınıfın örneğini yarattı). MyClass obj = new MyClass(); Hala bağımlılıkları enjekte etmek mümkün mü? Gibi bir şey: applicationContext.injectDependencies(obj); (Sanırım Google Guice'de böyle bir şey var)

4
@Value ile Bahar İfade Dili (SpEL): dolar - karma ($ - #)
Ben kullanmak için zaman konusunda karıştı biraz kafam ${...}kıyasla #{...}. Spring'in dokümantasyonu yalnızca kullanır #{...}, ancak kullanılan pek çok örnek vardır ${...}. Ayrıca, SpEL ile başladığımda kullanmam söylendi ${...}ve iyi çalışıyor. Kafası karışık olanlar için, onu nasıl kullandığıma bir örnek olurdu @Component public class ProxyConfiguration { @Value("${proxy.host}") private String host; …

4
Ioc / DI - Neden uygulamanın giriş noktasındaki tüm katmanlara / derlemelere başvurmam gerekiyor?
(Bu soruyla ilgili olarak, EF4: Geç yükleme etkinleştirildiğinde neden proxy oluşturma etkinleştirilmelidir? ). DI'da yeniyim, bu yüzden bana katlanın. Konteynırın tüm kayıtlı türlerimın örneğini oluşturmaktan sorumlu olduğunu anlıyorum, ancak bunu yapmak için çözümümdeki tüm DLL'lere ve bunların referanslarına bir başvuru gerektiriyor. Bir DI kapsayıcı kullanmasaydım, MVC3 uygulamamdaki EntityFramework kitaplığına başvurmak …

3
ContextLoaderListener veya değil mi?
Standart bir yay web uygulaması (Roo veya "Spring MVC Project" Template tarafından oluşturulmuş) ContextLoaderListenerve ile bir web.xml oluşturur DispatcherServlet. Neden DispatcherServlettüm konfigürasyonu yüklemek için sadece kullanmıyorlar ve bunu yapmıyorlar ? ContextLoaderListener'ın web ile ilgili olmayan şeyleri yüklemek için kullanılması gerektiğini ve DispatcherServlet'in web ile ilgili öğeleri yüklemek için kullanıldığını anlıyorum …

4
Javax.inject.Named ek açıklamanın ne için kullanılması gerekiyor?
javax.injectPaketi anlamaya çalışıyorum ve javax.inject.Namedek açıklamanın ne için kullanılması gerektiği konusunda net değilim . Javadoc, arkasındaki fikri açıklamıyor. Javadoc, http://download.oracle.com/javaee/6/api/javax/inject/Named.html adresindedir. Bazı örnek programlar yazmak için Spring 3.0 kullanıyorum @Named, bir fasulye koyarak onu fasulye fabrikasına ekliyor gibi görünüyor, ancak Javadoc tanımı o kadar hafif ki bunun standart davranış mı …

6
Verileri "yönlendirici çıkışı" alt bileşenlerine geçirme
Sunucuya giden ve bir nesneyi getiren bir ana bileşenim var: // parent component @Component({ selector : 'node-display', template : ` <router-outlet [node]="node"></router-outlet> ` }) export class NodeDisplayComponent implements OnInit { node: Node; ngOnInit(): void { this.nodeService.getNode(path) .subscribe( node => { this.node = node; }, err => { console.log(err); } ); …


8
Jersey 2.0 ile bağımlılık ekleme
Daha önce Jersey 1.x bilgisi olmadan sıfırdan başlayarak, Jersey 2.0 projemde bağımlılık enjeksiyonunu nasıl ayarlayacağımı anlamakta zorlanıyorum. HK2'nin Jersey 2.0'da da mevcut olduğunu anlıyorum, ancak Jersey 2.0 entegrasyonuna yardımcı olacak dokümanları bulamıyorum. @ManagedBean @Path("myresource") public class MyResource { @Inject MyService myService; /** * Method handling HTTP GET requests. The returned …

9
WPF / MVVM uygulamasında bağımlılık enjeksiyonu nasıl işlenir
Yeni bir masaüstü uygulaması başlatıyorum ve bunu MVVM ve WPF kullanarak oluşturmak istiyorum. Ben de TDD'yi kullanmak niyetindeyim. Sorun şu ki, bağımlılıklarımı üretim koduma enjekte etmek için bir IoC kabını nasıl kullanmam gerektiğini bilmiyorum. Aşağıdaki sınıfa ve arayüze sahip olduğumu varsayalım: public interface IStorage { bool SaveFile(string content); } public …

16
Bağımlılık enjeksiyon konteynerlerinin faydaları nelerdir?
Bağımlılık enjeksiyonunun faydalarını anlıyorum. Mesela Baharı ele alalım. Ayrıca AOP, farklı türden yardımcılar gibi diğer Spring özelliklerinin faydalarını da anlıyorum. XML yapılandırmasının aşağıdaki gibi faydalarının neler olduğunu merak ediyorum: <bean id="Mary" class="foo.bar.Female"> <property name="age" value="23"/> </bean> <bean id="John" class="foo.bar.Male"> <property name="girlfriend" ref="Mary"/> </bean> düz eski java koduyla karşılaştırıldığında, örneğin: Female …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.