2016-09-23 9 views
2

私はSpring Securityの作業を開始しました。私はthisリンクからHelloWorldアプリケーションをやっています。@Import Annotationの使用

私の質問は、なぜ@Import注釈が必要ですか?

私はSpring MVCで作業していましたが、これまで同様の設定ファイルを定義していましたが、同じパッケージに入っていたのでインポートする必要はありませんでした。ここでSecurityConfig.javaファイルをインポートするのはなぜですか?

私は@Import注釈を使用していた場所がここに

AppConfig.java次のとおりです。

package com.mkyong.config; 

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.context.annotation.Import; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.view.InternalResourceViewResolver; 
import org.springframework.web.servlet.view.JstlView; 

@EnableWebMvc 
@Configuration 
@ComponentScan({ "com.mkyong.web.*" }) 
@Import({ SecurityConfig.class }) 
public class AppConfig { 

    @Bean 
    public InternalResourceViewResolver viewResolver() { 
     InternalResourceViewResolver viewResolver 
          = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("/WEB-INF/pages/"); 
     viewResolver.setSuffix(".jsp"); 
     return viewResolver; 
    } 
} 

答えて

1

あなたはそれがピックアップされないので、メインアプリの設定クラスにセキュリティをインポートする必要がありますスキャナが@ComponentScan({ "com.mkyong.web.*" })のためにクラス内にないため、@ComponentScanによって表示されます。セキュリティ設定はそこに定義されていません。

@Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class[] { AppConfig.class }; 
    } 

セキュリティクラスをインポートしないと、セキュリティはアプリケーションに登録されません。

+0

大丈夫、ありがとう! –

関連する問題