Spring boot ComponentScan excludeFIlters nicht ohne

Ich bin eine SimpleTest :

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SimpleTestConfig.class)
public class SimpleTest {
    @Test
    public void test() {
        assertThat(true);
    }
}

und ein Konfiguration für diesen test :

@SpringBootApplication
@ComponentScan(basePackageClasses = {
        SimpleTestConfig.class,
        Application.class
},
        excludeFilters = @ComponentScan.Filter(
                type = FilterType.ASSIGNABLE_TYPE,
                classes = Starter.class))
public class SimpleTestConfig {
}

Ich versuche ausgeschlossen werden, die Starter Klasse

package application.starters;

import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;

@Component
public class Starter {
    @PostConstruct
    public void init(){
        System.out.println("initializing");
    }
}

Und die Anwendung - Klasse sieht wie folgt aus :

package application;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import static org.springframework.boot.SpringApplication.run;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        run(Application.class, args);
    }
}

Aber für einen sehr komischen Grund die Starter Klasse ist noch immer initialisiert.

Kann mir jemand erklären, warum die ComponentScan excludeFilters ist nicht ohne meine Starter Klasse ?

  • Entweder mir fehlt die main (Methode) in SimpleTestConfig, oder Sie nicht gut erklärt, wo wollen Sie ausschließen aus
  • Ersetzen @SpringBootApplication mit @Configuration auf Sie SimpleTestConfig Klasse. Und hoffe auch, dass es in Ihrem src/main Ordner, wenn Sie erstellen ein test-Zweck-Konfiguration(in src/test Ordner), verwenden Sie @TestConfiguration annotation statt.
  • Ähnliche Frage: stackoverflow.com/questions/25550494/...
  • Rwlated: stackoverflow.com/questions/18992880/...
InformationsquelleAutor Daniel Taub | 2018-01-04
Schreibe einen Kommentar