2017-05-22 7 views
4

쿠키를 구성하는 데 @Configuration을 사용하고 있습니다. 프로젝트에는 2 개의 패키지가 있고 패키지 중 하나에만 구성을 적용하고 싶습니다.
@Configuration에 대한 대상 패키지를 설정할 수있는 방법이 있습니까?스프링 부트 : 특정 패키지에만 @configuration을 적용하십시오.

패키지 구조 :
--app
---- packageA
------MyConfigClass.java
---- packageB

@EnableJdbcHttpSession(maxInactiveIntervalInSeconds = 1800) 
@Configuration 
public class MyConfigClass extends WebMvcConfigurerAdapter { 
@Bean 
    public CookieSerializer cookieSerializer() { 
     // I want the follow cookie config only apply to packageA 
     DefaultCookieSerializer serializer = new DefaultCookieSerializer(); 
     serializer.setCookieName("myCookieName"); 
     serializer.setCookiePath("/somePath/"); 
     return serializer; 
    } 
} 

답변

0

, 당신은 지정 @ComponentScan을 사용할 수 있습니다 검사 할 패키지 및 제외 할 클래스를 생략 할 exclude 옵션이있는 @EnableAutoConfiguration. 당신은 당신의 메인 어플리케이션 클래스에서 이것을 사용해야합니다.

@EnableAutoConfiguration(exclude = { Class1.class, 
     Class2.class, 
     Class3.class }, 
excludeName = {"mypackage.classname"})) 
@Configuration 
@ComponentScan(basePackages = { "mypackage" }) 
public class MyApplication { 

public static void main(String[] args) throws Exception { 
     SpringApplication.run(MyApplication.class, args); 
    } 
} 

또는 구성 파일에서 제외 할 클래스를 제공 할 수도 있습니다.

# AUTO-CONFIGURATION 
spring.autoconfigure.exclude= # Auto-configuration classes to exclude. 
+1

exclude는 레코드의 자동 구성에만 적용됩니다. –

1

봄 부팅에서, 메인 클래스 @SpringBootApplicatio으로 주석 된 경우 기본 속성을 사용하여 @Configuration, @EnableAutoConfiguration@ComponentScan이 이미 포함되어 있으므로 모든 수업이 자동으로 스캔됩니다. @SpringBootApplicationexclude을 사용하면 클래스 만 제외되지만, 패키지에 많은 클래스가있는 경우 코드가 더러워 보일 것입니다. 귀하의 경우에는

는 가장 쉬운 방법은 사용자가 설정 및 자동 스캔 할 패키지에 주요 봄 부팅 응용 프로그램 항목 클래스를 이동하는 것입니다 :

---- packageA

---- --app

------MyConfigClass.java

사실 ---- packageB

0

이와 같이 세부적으로 가고 싶다면 구성 스캔을 전혀 사용하지 않을 것입니다. 자체가 인 (서브 패키지를 포함) 스프링 부팅 응용 프로그램이 상주하는

  • 확실히 봄 부팅 응용 프로그램을 확인 패키지에 구성 요소 스캔을 사용
    1. 사용 자동 설정 : @SpringBootApplication 세 가지에 대한 바로 가기입니다 당신은 여분의 콩, 수입 구성 등 기여할 수 구성 (그래서

    당신은 단지 특정 장소에서 구성 보이는 봄 부팅 응용 프로그램을 원하는 경우,이 같은 것을 할 거라고 :

    @Configuration 
    @EnableAutoConfiguration 
    @Import(MyConfigClass.class) 
    public class MySpringBootApp { ... } 
    

    IMO, 제외로 스캔하는 것보다 원하는 시나리오를 포함시키는 것이 훨씬 분명합니다. 어쩌면 처음부터이 작업을 수행 할 필요가 없도록 앱을 재구성 할 수 있습니다.프로필 사용은 하나의 옵션이므로 원치 않는 구성은 프로필을 사용할 때만 적용됩니다.