Запитання з тегом «dependency-injection»

Конструкція, що дозволяє зменшити зв'язок між компонентами, динамічно вводячи в програмний компонент залежності, які йому потрібні для функціонування.

11
Код тестування блоку із залежністю від файлової системи
Я пишу компонент, який, враховуючи ZIP-файл, повинен: Розпакуйте файл. Знайдіть конкретний dll серед розпакованих файлів. Завантажте цей dll за допомогою відображення та застосуйте метод на ньому. Я хотів би перевірити цей компонент. Мені спокуса написати код, який стосується безпосередньо файлової системи: void DoIt() { Zip.Unzip(theZipFile, "C:\\foo\\Unzipped"); System.IO.File myDll = File.Open("C:\\foo\\Unzipped\\SuperSecret.bar"); …

7
Чи є ServiceLocator антитілом?
Нещодавно я прочитав статтю Марка Семана про антидіапазон службового пошуку. Автор вказує на дві основні причини, по яких ServiceLocator є антидіаграмою: Проблема використання API (з якою я прекрасно вживаюсь) Коли клас використовує сервіс-локатор, дуже важко помітити його залежності, оскільки, в більшості випадків, клас має лише один конструктор PARAMETERLESS. На відміну …

2
InvalidOperationException: неможливо вирішити службу для типу "Microsoft.AspNetCore.Http.IHttpContextAccessor"
Я почав конвертувати свій базовий проект RC1 asp.net в RC2 і зіткнувся з проблемою, яка зараз IHttpContextAccessorне вирішена. Для простоти я створив новий проект ASP.NET RC2 за допомогою шаблону Visual Studio ASP.NET Core Web Application (.Net Framework). Тож я додав конструктор для HomeController, який шаблон створив для мене. public HomeController(IHttpContextAccessor …

4
Що саме таке «Інжекція поля» і як цього уникнути?
Я читав у деяких публікаціях про Spring MVC та Portlets, що введення в поле не рекомендується. Як я розумію, польова ін'єкція - це коли ти вводиш Бін @Autowiredтаким чином: @Component public class MyComponent { @Autowired private Cart cart; } Під час свого дослідження я також читав про конструкторські інжекції : …

21
Потрібна ін'єкція залежності залежно від інкапсуляції?
Якщо я правильно розумію, типовим механізмом введення залежностей є введення або через конструктор класу, або через публічну властивість (член) класу. Це виявляє залежність, яка вводиться, і порушує принцип ООП інкапсуляції. Чи правильно я виявляю цей компроміс? Як ви вирішуєте це питання? Будь ласка, дивіться також мою відповідь на моє власне …

4
Як ввести залежності навесні в об'єкт, що самоаналізується, навесні?
Скажімо, у нас є клас: public class MyClass { @Autowired private AnotherBean anotherBean; } Тоді ми створили об’єкт цього класу (або якийсь інший фреймворк створив екземпляр цього класу). MyClass obj = new MyClass(); Чи можна все-таки вводити залежності? Щось на зразок: applicationContext.injectDependencies(obj); (Я думаю, що в Google Guice є щось …

4
Мова весняних виразів (SpEL) з @Value: долар проти хешу ($ проти #)
Я трохи розгублений щодо того, коли використовувати в ${...}порівнянні з #{...}. Документація весни використовує лише документацію #{...}, але є багато прикладів ${...}. Крім того, коли я почав працювати зі SpEL, мені сказали використовувати, ${...}і він прекрасно працює. Для тих, хто плутається, прикладом того, як я це використовую, був би приклад …

4
Ioc / DI - Чому я повинен посилатись на всі шари / складання у точці входу програми?
(Пов’язане з цим питанням, EF4: Чому створення проксі потрібно вмикати, коли включено ледаче завантаження? ). Я новачок у DI, тож потерпіть до мене. Я розумію, що контейнер відповідає за реєстрацію всіх моїх зареєстрованих типів, але для цього потрібне посилання на всі DLL в моєму рішенні та їх посилання. Якщо я …

3
ContextLoaderListener чи ні?
Стандартний весняний веб-додаток (створений Roo або «Шаблон весняного проекту MVC») створить web.xml з ContextLoaderListenerта DispatcherServlet. Чому вони не просто використовують DispatcherServletі роблять це для завантаження повної конфігурації? Я розумію, що ContextLoaderListener слід використовувати для завантаження речей, що не стосуються Інтернету, і DispatcherServlet використовується для завантаження відповідних веб-матеріалів (Controllers, ...). І …

4
Для чого слід використовувати анотацію javax.inject.Named?
Я намагаюся зрозуміти javax.injectпакет, і мені не ясно, для чого слід використовувати javax.inject.Namedанотацію. Javadoc не пояснює ідеї, що стоїть за ним. Javadoc знаходиться за адресою http://download.oracle.com/javaee/6/api/javax/inject/Named.html Я використовую Spring 3.0 для написання деяких прикладних програм, надягаючи @Namedна квасоля, схоже, додайте його до фабрики бобів, але опис Javadoc настільки легкий, що …

21
Як вставити вікно в службу?
Я пишу сервіс Angular 2 у TypeScript, який використовуватиму localstorage. Я хочу , щоб ввести посилання на браузер windowоб'єкта в моїй служби , так як я не хочу , щоб посилатися на які - або глобальні змінні , як Кутове 1.x $window. Як це зробити?

8
Ін'єкційна залежність за допомогою Jersey 2.0
Починаючи з нуля, не маючи попередніх знань Jersey 1.x, мені важко зрозуміти, як налаштувати ін'єкційну залежність у своєму проекті Jersey 2.0. Я також розумію, що HK2 доступний у Jersey 2.0, але я не можу знайти документів, які допомагають інтегрувати Jersey 2.0. @ManagedBean @Path("myresource") public class MyResource { @Inject MyService myService; …

16
Які переваги контейнерів для ін'єкційних залежностей?
Я розумію самі переваги введення залежності. Візьмемо для прикладу Весну. Я також розумію переваги інших функцій Spring, таких як AOP, помічників різних типів і т. Д. Мені просто цікаво, які переваги конфігурації XML, такі як: <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> порівняно …

7
Angularjs мінімізує кращі практики
Я читаю http://www.alexrothenberg.com/2013/02/11/the-magic-behind-angularjs-dependency-injection.html, і виявилося, що введення залежності angularjs має проблеми, якщо ви мінімізуєте javascript, щоб я Цікаво, чи замість цього var MyController = function($scope, $http) { $http.get('https://api.github.com/repos/angular/angular.js/commits') .then(function(response) { $scope.commits = response.data }) } ви повинні використовувати var MyController = ['$scope', '$http', function($scope, $http) { $http.get('https://api.github.com/repos/angular/angular.js/commits') .then(function(response) { $scope.commits …

8
Як я можу передавати значення конструктору на сервісі wcf?
Я хотів би передати значення в конструктор класу, який реалізує мою службу. Однак ServiceHost дозволяє лише мені передавати ім'я типу для створення, а не те, які аргументи передавати його виконавцю. Мені хотілося б перейти на завод, який створює мій сервісний об’єкт. Що я знайшов поки що: Поведінка ін'єкцій залежності WCF …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.