2016-09-23 7 views
2

Я начал работу над Spring Security. Я делаю приложение HelloWorld с ссылкой this.Использование @Import Аннотация

Мой вопрос есть, зачем нам нужна аннотация @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, потому что класс не входит в пакет для сканирования @ComponentScan({ "com.mkyong.web.*" }). Конфигурация безопасности там не определена. Вы регистрируете свой главный класс, как:

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

Если вы не импортировать класс безопасности в него тогда безопасность не будет регистрироваться в приложении.

+0

хорошо, спасибо !!! –

Смежные вопросы