搭建基于gradle的sprint boot项目,swagger-ui辅助
spring boot官网:http://projects.spring.io/spring-boot/
get start :https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#getting-started
需要的环境:
jdk1.6以上 http://www.oracle.com/technetwork/java/javase/downloads/index.html
gradle https://gradle.org/gradle-download/
开始:
建一个java项目TestSprint
建两个包src/main/java和src/main/resources,一个build.gradle文件
$ cd TestSpring
$ mkdir -p src/main/java $ mkdir -p src/main/resources $ touch build.gradle
程序需要一个启动方法也就是main方法,在src/main/java包或者其他在这个包下的其他包建一个java类,建一个main方法
public class SpringBoot { public static void main(String[] args) { } }
修改build.gradle文件
buildscript { repositories { mavenLocal() mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.7.RELEASE") classpath("org.springframework:springloaded:1.2.0.RELEASE") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'spring-boot' jar { baseName = 'fzk' version = '0.0.1' } repositories { mavenLocal() mavenCentral() } sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { compile("org.springframework.boot:spring-boot-starter-web") compile("io.springfox:springfox-swagger2:2.2.2") compile 'io.springfox:springfox-swagger-ui:2.2.2' }
buildscript块是自身所需要的一些依赖。apply plugin是gradle的插件。jar是打出来到jar包的命名。repositories是依赖所需要的jar下载下来后存放的位置。dependencies是项目所需要的依赖。这里要整合swagger-ui,又加了下面两个依赖。
执行
gradle build
gradle eclipse
把需要的jar下载下来,导进项目里。
在src/main/resources里创建配置文件application.properties
server.port:8888
这里现在什么都没有,以后有什么配置文件可以往这里添加。server.port是spring一个提供好设置端口的属性,这样设置完,项目启动时会跑在8888端口。
修改启动类,SprintBoot类
@SpringBootApplication @EnableSwagger2 @ComponentScan({"cn.com.fzk.controller"}) public class SpringBoot { public static void main(String[] args) { SpringApplication app = new SpringApplication(SpringBoot.class); app.run(args); } @Bean public Docket testApi() { return new Docket(DocumentationType.SWAGGER_2).groupName("测试") .apiInfo(new ApiInfoBuilder().title("测试").description("fzk").build()).select() .paths(PathSelectors.regex("/test.*")).build(); } }
@SpringBootApplication是@Configuration
, @EnableAutoConfiguration
和 @ComponentScan三个联合起来的一个注解。@
Configuration说明这是一个配置类,@EnableAutoConfiguration允许自动配置,@ComponentScan扫描。
@EnableSwagger2 这个是swagger的一个注解。
@ComponentScan({"cn.com.fzk.controller"}) 自动扫描那个包下的所有bean
testApi()这个方法产生了一个Docket类型的bean,这个bean设置了一些需要显示的东西。如果还有其他的分组,创建不同的bean就可以。(swagger-ui 对于生成的api测试还是非常好用的。如果对于配置还有别的需求,swagger-ui github地址:https://github.com/swagger-api/swagger-ui)
上面建好了一个分组,下面写这个分组里面的,建一个controller包(包名随便),建一个Controller
@RestController @RequestMapping(value = "/test", headers = "Accept=application/json", produces = "application/json") public class TestController { @RequestMapping(value = "", method = RequestMethod.GET) public String test() { return "success"; } }
@RestController是@Controller
和 @ResponseBody的结合,@RequestMapping设置路径,头部信息和生成什么样的格式。
项目建成。
启动方法:点击run-->run configuration-->在main type那栏找到自己的带main方法的那个类就是SprintBoot类。然后就可以跑起来了。
打开浏览器输入http://localhost:8888/swagger-ui.html 就能看到swagger-ui界面了上面是自己写的api。
还有一点不好的就是每次必须都输入http://localhost:8888/swagger-ui.html 才能进入页面。可以通过修改代码在输入http://localhost:8888 就能重定向到swagger页面。
在controller中在建一个类,名字任意。这里是HomeController
@Controller public class HomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String home() { return "redirect:swagger-ui.html"; } }
这样,每次只需要输入网址和端口号就可以了。