我正在将我的spring mvc应用程序转移到spring boot应用程序。 我也将我的xml基本配置转移到基于类。
我做了大部分事情。 我只是不知道如何扫描REST控制器包。 Bean正在创建,但REST控制器bean不会创建。
使用哪种注释?在哪里给出配置来扫描控制器。 还是不知道。
在XML中我有标签:
<context:component-scan base-package="ApiServer" />
现在如何将其转换为我不知道的简单类配置。 控制器:
@Controller
@RequestMapping(value = SeriesController.BASE_URL)
public class SeriesController {
public static final String BASE_URL = "/setup/series";
@RequestMapping(method = RequestMethod.GET)
public @ResponseBody
ResponseEntity<List<SeriesResponse>> getSeries(){
List<SeriesResponse> responses = new ArrayList<>();
return new ResponseEntity<>(responses, HttpStatus.OK);
}
}
主类:
@SpringBootApplication
public class Application {
public static void main(String[] args) throws Exception {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println("BEAN :: " + beanName);
}
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
CORSFilter corsFilter = new CORSFilter();
registrationBean.setFilter(corsFilter);
registrationBean.setOrder(1);
return registrationBean;
}
}
答案 0 :(得分:3)
您可以在配置类上使用@ComponentScan,使用下面的基础软件包扫描您的其余控制器。
@SpringBootApplication
@ComponentScan(basePackages="ApiServer")
public class Application {
public static void main(String[] args) throws Exception {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println("BEAN :: " + beanName);
}
}
答案 1 :(得分:0)
@SpringBootApplication是三个注释的集合。 @ComponentScan是其中之一。因此,无需两次声明。这将达到目的:
@SpringBootApplication(scanBasePackages = "apiserver")
public class Application {
public static void main(String[] args) throws Exception {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println("BEAN :: " + beanName);
}
}
}