配置文件
我们把 application 的配置文件和 Spring MVC 的配置文件分别分开。如下
AppConfiguration.java
/** @Description:* @Date: 2020/10/29*/package com.example.configuration;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;/*** Application Configuration* */@Configurationpublic class AppConfiguration {}
WebConfiguration.java
/** @Description:* @Date: 2020/10/29*/package com.example.configuration;import org.springframework.context.annotation.ComponentScan;import org.springframework.web.servlet.config.annotation.EnableWebMvc;/*** Spring MVC 的配置* */@EnableWebMvc@ComponentScan(basePackages = {"com.example"})public class WebConfiguration {}
然后,我们需要告诉 Spring 如何去查找这些配置文件
新建 WebInit.java
package com.example.configuration;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class[]{AppConfiguration.class}; // 可以配置多个文件}@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class[]{WebConfiguration.class};}@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}}
WebConfig配置类中主要是内容是启用组件扫描,配置视图解析器,配置静态资源的处理。
AppConfig配置类加载的是驱动应用后端的中间层和数据层组件,是父上下文。
测试
新建 IndexController.java
/** @Description:* @Date: 2020/10/29*/package com.example.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api/v1")public class IndexController {@GetMapping("/ping")public String ping(){return "api alive";}}
访问后可得
配置成功了!
