Ich habe solche Feder Boot-Test:Reihenfolge der Deklaration von Config-Klassen in SpringApplicationConfiguration. Frühlings-Boot-
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {
PropertyConfig.class,
ServiceConfigA.class,
ServiceConfigB.class}
)
public class SpringTest {
@Test
public void test() {
...
}
}
Wenn PropertyConfig
Klasse deklariert erste in der Liste der Klassen I erhalten Kontext Initialisierung Fehler, da Bohnen innerhalb PropertyConfig
ignoriert und Bohnen aus dem Dienst configs können einige Felder nicht autowire. Wenn ich nach einigen serivce-Konfigurationen PropertyConfig
verschiebe, werden die Beans innerhalb PropertyConfig
initialisiert.
Genauer gesagt enthält PropertyConfig
zwei Bohnen: PropertiesFactoryBean
und PropertySourcesPlaceholderConfigurer
. Ursache von PropertySourcesPlaceholderConfigurer
ist nicht vorhanden. Beans aus Dienstkonfigurationen konnten Felder mit @Value
Annotation nicht automatisch verbinden (kann nicht automatisch von String in Integer konvertiert werden).
Meine Frage ist, warum Bohnen von PropertyConfig
im ersten Fall nicht initialisiert werden? Gibt es einige Funktionen zum Laden von Konfigurationen in Spring Boot-Tests?
Hat mein Tipp, Ihre 'PropertySourcesPlaceholderConfigurer' Beans' statische' Arbeit für Sie zu machen? –