Zastanawiam się, czy jest to możliwe. Do celów testowania chciałbym, aby różne klasy próbne były deklarowane w kontekście aplikacji dla różnych testów. Są to testy akceptacyjne przy użyciu klienta REST z Jersey. Czy istnieje sposób dynamicznego deklarowania komponentu bean w czasie wykonywania? Czy Spring ma interfejs API umożliwiający zmiany w kontekście aplikacji po załadowaniu kontekstu?dynamicznie zadeklaruj fasolę w czasie wykonywania na wiosnę
15
A
Odpowiedz
21
Najczęstszym sposobem na różne fasole w kontekście aplikacji są profile. Można przeczytać o profilach w następujących stanowisk źródłowych wiosna:
- http://blog.springsource.org/2011/02/14/spring-3-1-m1-introducing-profile
- http://blog.springsource.org/2011/06/21/spring-3-1-m2-testing-with-configuration-classes-and-profiles/
O swoim pierwszym pytaniu, można zadeklarować fasoli w czasie wykonywania przez BeanDefinitionRegistry.registerBeanDefinition()
sposobem, na przykład:
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(SomeClass.class);
builder.addPropertyReference("propertyName", "someBean"); // add dependency to other bean
builder.addPropertyValue("propertyName", someValue); // set property value
DefaultListableBeanFactory factory = (DefaultListableBeanFactory) context.getBeanFactory();
factory.registerBeanDefinition("beanName", builder.getBeanDefinition());
Możliwe jest również zarejestrowanie instancji pojedynczej komórki (już skonfigurowanej) za pomocą
context.getBeanFactory().registerSingleton(beanName, singletonObject)
Wreszcie wiosna nie zapewnia wyraźny sposób zmienić fasoli po odświeżeniu kontekst, ale najczęstsze podej są:
- blisko i odświeżyć ponownie (obiously)
- Użyj proxy i zamień miejsce docelowe w czasie działania: patrz Replace spring bean in one context with mock version from another context (na przykład).
Powiązane problemy
- 1. Jak zmieniać wartości właściwości w czasie wykonywania na wiosnę
- 2. Generowanie zespołu DLL dynamicznie w czasie wykonywania
- 3. Jak przekazać wartość ObjectDataProvider.MethodParameters dynamicznie w czasie wykonywania
- 4. Dodawanie elementów sterujących do TableLayoutPanel dynamicznie w czasie wykonywania
- 5. Java Swing - przełączaj ustawienia narodowe dynamicznie w czasie wykonywania
- 6. Umowy na kod w czasie wykonywania
- 7. Ustawianie layout_anchor w czasie wykonywania na FloatingActionButton
- 8. Zmiana koloru wiersza JList w czasie wykonywania
- 9. Powielanie składników w czasie wykonywania
- 10. Ładowanie XAML w czasie wykonywania?
- 11. Awaria OCMock w czasie wykonywania
- 12. metoda wywołania w czasie wykonywania
- 13. Rejestrowanie metoda czasie wykonywania
- 14. Zamek Windsor rozwiązuje w czasie wykonywania
- 15. Kiedy używać javax.inject.Provider na wiosnę?
- 16. Zadeklaruj i przypisz wiele zmiennych łańcuchowych w tym samym czasie.
- 17. Jak zastosować styl dynamiczny w kodzie w czasie wykonywania?
- 18. Renderowanie obrazu w czasie wykonywania w WPF
- 19. W Maven, w jaki sposób mogę dynamicznie budować wartość właściwości w czasie wykonywania?
- 20. Narzędzia Java do łączenia wykonywania w czasie wykonywania z pokryciem
- 21. Uzyskaj powiązania IIS w czasie wykonywania
- 22. Zmienić ustawienia narodowe w czasie wykonywania?
- 23. Załadować dll COM w czasie wykonywania?
- 24. Rozmiar pamięci podręcznej Ehcache w czasie wykonywania
- 25. Używanie łańcucha jako zmiennej w czasie wykonywania
- 26. Android - skalowanie widoku (układu) w czasie wykonywania
- 27. Przekształć typelistę z funkcją w czasie wykonywania
- 28. Jak uzyskać preferencje dzwonka w czasie wykonywania?
- 29. Lista zaćmienie zainstalowanych wtyczek w czasie wykonywania
- 30. Jak zablokować orientację w czasie wykonywania