配置文件

我们把 application 的配置文件和 Spring MVC 的配置文件分别分开。如下
AppConfiguration.java

  1. /*
  2. * @Description:
  3. * @Date: 2020/10/29
  4. */
  5. package com.example.configuration;
  6. import org.springframework.context.annotation.ComponentScan;
  7. import org.springframework.context.annotation.Configuration;
  8. /**
  9. * Application Configuration
  10. * */
  11. @Configuration
  12. public class AppConfiguration {
  13. }

WebConfiguration.java

  1. /*
  2. * @Description:
  3. * @Date: 2020/10/29
  4. */
  5. package com.example.configuration;
  6. import org.springframework.context.annotation.ComponentScan;
  7. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  8. /**
  9. * Spring MVC 的配置
  10. * */
  11. @EnableWebMvc
  12. @ComponentScan(basePackages = {"com.example"})
  13. public class WebConfiguration {
  14. }

然后,我们需要告诉 Spring 如何去查找这些配置文件
新建 WebInit.java

  1. package com.example.configuration;
  2. import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
  3. public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {
  4. @Override
  5. protected Class<?>[] getRootConfigClasses() {
  6. return new Class[]{AppConfiguration.class}; // 可以配置多个文件
  7. }
  8. @Override
  9. protected Class<?>[] getServletConfigClasses() {
  10. return new Class[]{WebConfiguration.class};
  11. }
  12. @Override
  13. protected String[] getServletMappings() {
  14. return new String[]{"/"};
  15. }
  16. }

WebConfig配置类中主要是内容是启用组件扫描配置视图解析器配置静态资源的处理。
AppConfig配置类加载的是驱动应用后端的中间层和数据层组件,是父上下文。

测试

新建 IndexController.java

  1. /*
  2. * @Description:
  3. * @Date: 2020/10/29
  4. */
  5. package com.example.controller;
  6. import org.springframework.web.bind.annotation.GetMapping;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RestController;
  9. @RestController
  10. @RequestMapping("/api/v1")
  11. public class IndexController {
  12. @GetMapping("/ping")
  13. public String ping(){
  14. return "api alive";
  15. }
  16. }

访问后可得
image.png
配置成功了!