Я следующий учебник о Spring MVC, и я не могу понять что-то о @ComponentScan аннотацию, даже если я прочитал весной API док, так вот пример кодаКак понять Spring @ComponentScan
Настройка View Controllers
package com.apress.prospringmvc.bookstore.web.config;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
// Other imports ommitted
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "com.apress.prospringmvc.bookstore.web" })
public class WebMvcContextConfiguration extends WebMvcConfigurerAdapter {
// Other methods ommitted
@Override
public void addViewControllers(final ViewControllerRegistry registry) {
registry.addViewController("/index.htm").setViewName("index");
}
}
аннотаций на основе Контроллеры
package com.apress.prospringmvc.bookstore.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class IndexController {
@RequestMapping(value = "/index.htm")
public ModelAndView indexPage() {
return new ModelAndView(“index");
}
}
Мой вопрос:
для просмотра контроллерах, добавив
@Configuration и
@ComponentScan (basePackages = { "com.apress.prospringmvc.bookstore.web"}) , что будет сделано в фоновом режиме ? будет ли пакет com.apress.prospringmvc.bookstore.web предлагать что-то для этих контроллеров представления?
так что для моего примера, что, если я удалю @ComponentScan(), моя программа больше не будет работать, потому что у него недостает каких-то бобов или что-то еще? –
Да, ваш 'IndexController' не будет функционировать. –
Кажется более понятным, чем сейчас, но не 100%. Могу ли я попросить вас объяснить отношения между этими двумя классами? Как подключить представление, «/index.htm» и контроллер. –