JAVA SSM框架中解決ajax及swagger測試請求跨域問題
阿新 • • 發佈:2018-12-22
1.在config問價夾下建立一個類CrossDomainConfig.java:
package com.game.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration public class CrossDomainConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedMethods("GET", "POST", "DELETE", "PUT", "PATCH", "OPTIONS"); } }
2.SwaggerConfig.java:
package com.game.config; import com.google.common.base.Predicate; import org.springframework.boot.autoconfigure.web.BasicErrorController; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.RequestHandler; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 @Profile({"test"}) public class SwaggerConfig { @Bean public Docket createRestApi() { Predicate<RequestHandler> predicate = new Predicate<RequestHandler>() { @Override public boolean apply(RequestHandler input) { Class<?> declaringClass = input.declaringClass(); if (declaringClass == BasicErrorController.class)// 排除 { return false; } if (declaringClass.isAnnotationPresent(RestController.class)) // 被註解的類 { return true; } if (input.isAnnotatedWith(ResponseBody.class)) // 被註解的方法 { return true; } return false; } }; return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .useDefaultResponseMessages(false) .select() .apis(predicate) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("包含媒體、諮詢、搜尋引擎關鍵字、廣告等型別介面的服務")//大標題 .version("1.0")//版本 .build(); } }
3.GameApiApplication:
package com.game;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; @SpringBootApplication public class GameApiApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(GameApiApplication.class); } public static void main(String[] args) { SpringApplication.run(GameApiApplication.class, args); } }