基于gralde搭建spring boot项目

搭建基于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";
    }
}

这样,每次只需要输入网址和端口号就可以了。

原文地址:https://www.cnblogs.com/badboyf/p/6150511.html