• SpringBoot标准化搭建


    今天和大家分享一个项目,集SpringBoot+Mybatis+redis+shiro+jwt+vue于一体的标准项目框架。
    整个项目不涉及任何具体业务场景,只配置了一些常用功能,如:权限管理,用户管理,菜单管理等,外加redis中间件,以及很多好用的工具类(RedisUtil,Id生成器,JWt等),可以说是即拿即用,扩展性也非常强,下面就就进入主题,看看怎么使用吧。

    一、SpringBoot + Mybatis介绍与搭建
    不知道大家在开发过程中,有没有从0开始搭建一个项目,反正花Gie刚开始学Java的时候,被SSM折腾的死去活来,各种复杂的配置文件搞的我一直在崩溃的边缘试探,而近年来随着SpringBoot的普遍使用,新一批程序猿大军要舒服多了,因为SpringBoot简化了配置,让开发变得极其简单而快速。
    1.1 SpringBoot是什么
    SpringBoot 是 Pivotal 团队开发的一套全新框架,设计目的是为了简化项目初始搭建以及开发过程,去除了大量的 xml 配置文件,简化了复杂的依赖管理,配合各种 starter 使用,基本上可以做到自动化配置。如果你使用的是IDEA开发工具,你只要点击几下 [下一步] 就可以完成所有配置,实现轻松启动。
    1.2 框架搭建介绍
    搭建基础框架有多种方式,由于不是我们本文的重点,这里介绍两种最常用的方式,小伙伴们可以根据自己习惯来选取,花Gie一般使用IDEA来搭建,相当方便。

    1.通过Spring Initializr创建

    打开浏览器,输入地址start.spring.io,正常情况可以看到下面这个界面。

    我们可以看到有很多配置项,这里简单介绍一下主要配置项的含义:

    • Project: 选择使用Maven或Gradle来创建项目;

    • Language: 开发语言;

    • Spring Boot: Spring Boot版本选择,默认最新版本(非里程碑和快照版本);

    • Project Metadata: 指定项目的一些基本信息:

      1. Group: 一般分为多个段,如com.basic.business,其中第一段为域,第二段为公司名称。域又分为org、com、cn等,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是,它的域是org(tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
      2. Artfact: 一般是项目名或者模块名,和Group一起保证项目唯一性
      3. name:项目名称
      4. Description:项目描述
      5. Package Name:包名,如com.huage.base
      6. Packaging:打包方式
      7. Java :JDK版本号
    • Dependencies: 选择需要的依赖,它会在创建项目时自动在生成的pom.xml(Maven)或者build.gradle(Gradle)引入依赖。

    填好所有信息后,点击Generate the project 按钮,Spring Initializr就会生成一个项目,这个项目会以zip文件的形式下载。解压到本地后,可以通过IDEA导入项目。

    2.通过IDEA创建

    依次点击IDEA菜单栏:File -> New -> Project,打开如下窗口:

    选择好JDK版本后,点击下一步会看到如下界面,是不是很熟悉,这个和上面说的网页端操作是一样的,这里就不再赘述,继续点击【下一步】

    下面这里是我们初始化依赖的地方,我们可以根据项目需要合理选择,也可以后续在pom文件中添加,此外这里还可以选择SpringBoot版本,一般使用最新稳定版本。

    注意:如果是官方start.spring.io生成的,不是阿里云https://start.aliyun.com/ 需要注意很新的版本如2.5.2 可能parent依赖一直下载不下来,如果你的仓库加速又是配置阿里云的加速 有可能是加速仓库还没有这个版本

    1.3 数据库设计
    因为本项目不涉及任何具体业务,所以只需要一些基础表即可,如:sys_user、sys_role、sys_menu等。

    1.4【标准版本】基础信息配置
    基础项目搭建完成后,此时整个项目只有空的文件夹和一个空的application.properties,这时我们需要对数据库和依赖包以及mybatis进行配置。

    • 1. 配置文件
    server.port=18082
    spring.application.name=first-program
    ​
    # mysql db
    spring.datasource.url=jdbc:mysql://localhost:3306/firstProgram?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    ​
    # mybatis
    mybatis.type-aliases-package=com.basic.business
    mybatis.mapper-locations=classpath:mapper/*.xml
    ​
    pagehelper.helper-dialect= mysql
    pagehelper.reasonable= false
    pagehelper.support-methods-arguments= true
    pagehelper.params= count=countsql
    • 2. pom文件
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <!--mysql 驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.40</version>
        <scope>runtime</scope>
    </dependency>
    <!--druid-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.10</version>
    </dependency>
    <dependency>
        <groupId>jakarta.validation</groupId>
        <artifactId>jakarta.validation-api</artifactId>
        <version>2.0.2</version>
    </dependency>
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>${pagehelper-spring-boot-starter.version}</version>
    </dependency>

    二、【标准版本】 集成Swagger

    EasyCode代码生成后,会自动带有Swagger注解,我们需要两步配置即可完成Swagger注解引入

    • pom依赖
     <!--swagger配置-->
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-models</artifactId>
        <version>1.5.21</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>

     这里依赖 提示找不到依赖或者报java.lang.NumberFormatException:For input string: “”错误

    所以建议上面使用完整pom依赖

        <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.9.2</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.swagger</groupId>
                        <artifactId>swagger-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.swagger</groupId>
                        <artifactId>swagger-models</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
                <dependency>
                        <groupId>io.springfox</groupId>
                        <artifactId>springfox-swagger-ui</artifactId>
                        <version>2.9.2</version>
                    </dependency>
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>1.5.22</version>
            </dependency>
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-models</artifactId>
                <version>1.5.22</version>
            </dependency>

    新建配置

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
        //是否开启swagger
        @Value("${swagger.enable}")
        private boolean enableSwagger;
    
            @Bean
        public Docket createRestApi() {
         return new Docket(DocumentationType.SWAGGER_2)
                 .enable(enableSwagger)
                 .apiInfo(apiInfo())
                 .select()
                 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                 .paths(PathSelectors.any())
                 .build();
           }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("标准版本API文档")
                    .description("")
                    .version("1.0")
                    .build();
         }
    
    
    }

    自己新建一个controller写点swagger注解 注意下面访问地址是适合swagger2.0 swagger3.0去除了swagger-ui.html

    接下来我们启动一下项目,在浏览器输入地址http://127.0.0.1:18082/swagger-ui.html,看看效果吧,如下图,我们可以正常看到swagger界面,尝试调用了一下接口,也都可以正常请求:

    早年同窗始相知,三载瞬逝情却萌。年少不知愁滋味,犹读红豆生南国。别离方知相思苦,心田红豆根以生。
  • 相关阅读:
    一个母亲一生撒的八个谎言(含泪推荐)!
    穷人必须做的四件大事
    八种人不太可能驰骋职场,有你吗?
    是谁让我如此忧伤?
    拒绝平淡:我用十年的时间名满天下
    高性能利器!华为云MRS ClickHouse重磅推出!
    MySQL 连接为什么挂死了?
    解读登录双因子认证(MFA)特性背后的TOTP原理
    云图说|初识数据仓库服务:云时代的数据分析助手
    号外!5G+X联创营华为云官网上线,5G 创业春天来了!
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/15127813.html
Copyright © 2020-2023  润新知