记一次创建springcloud项目(引入lombok和swagger)

该篇记录项目引入lombok及swagger

1.引入Lombok 和swagger2接口文档

1.parent增加Lombok依赖

<dependencies>

    <dependency>

        <groupId>org.projectlombok</groupId>

        <artifactId>lombok</artifactId>

    </dependency>

</dependencies>

2.parent在dependencyManagement中定义swagger2依赖

<!-- swagger -->

<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger2</artifactId>

    <version>2.9.2</version>

</dependency>

<!-- swagger-ui -->

<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger-ui</artifactId>

    <version>2.9.2</version>

</dependency>

3.需要引入swagger的子项目引入依赖

<!-- swagger2 -->

<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger2</artifactId>

</dependency>

<!-- swagger ui -->

<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger-ui</artifactId>

</dependency>

注:dependencyManagement与dependencies区别

1.为了项目的正确运行,必须让所有的子模块使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的结果。在我们项目顶层的pom文件中,我们会看到dependencyManagement元素。通过它元素来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。

2.相对于dependencyManagement,如果在父pom文件中中通过dependencies引入jar,将默认被所有的子模块继承。子模块如果希望有自己个性化的内容,可以在子模块中对于其中的某个属性进重新定义。

3.dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显式的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。dependencies即使在子模块中不写该依赖项,那么子模块仍然会从父项目中继承该依赖项(全部继承)。在实际的项目开发中,推荐在父pom中使用dependencyManagement对项目中使用到的依赖包进行统一的管理。

4.需要引入swagger的子项目增加配置文件

/**

* @description: swagger接口文档配置

* @author: caiming

* @time: 2022/3/21 15:18

*/

@Configuration

@EnableSwagger2

public class SwaggerApp {


    @Bean

    public Docket createRestApi() {

        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()

                .apis(RequestHandlerSelectors.basePackage("com.ming.commodity.controller"))

                .paths(PathSelectors.any()).build();

    }


    private ApiInfo apiInfo() {

        return new ApiInfoBuilder()

                .title("商品管理在线接口文档")

                .description("商品管理APIs")

                .version("1.0.0 SNAPSHOT")

                .build();

    }

}

效果图:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容