zoukankan      html  css  js  c++  java
  • Springboot + mybatis + React+redux+React-router+antd+Typescript(一): 后台Springboot+Mybatis的搭建

     前言:

      利用实习闲暇时间以及过年这段时间,自己慢慢摸索搭建了一套Springboot+mybatis的后台,React+Redux+React-router+Typescript的前端。

    项目已基本完成,现在总结一下搭建开发过程.

           前端github地址:  https://github.com/www2388258980/rty-web

           后台github地址:  https://github.com/www2388258980/rty-service

           项目访问地址:          http://106.13.61.216:5000/                               账号/密码: root/root

     

      Springboot+mybatis后台搭建主要有swagger的配置,mybatis逆向工程:也就是根据已有的表自动生成pojo类,mapper类以及mapper映射文件.

    准备工作:

      工具: IDEA;

      1. 安装jdk并配置环境变量,这个不用多说。

      2..需要安装maven并配置maven环境变量,然后设置本地仓库,并与IDEA关联.自行百度,很多。

    正文:

         1.打开idea,File - - > new - - > project -- > spring Initializr 使用默认的网址搭建springboot项目:

       (1): Group 一般填自己公司所在域名的倒写,比如百度: https://www.baidu.com/ 就是com.baidu;

       (2): Artifact 一般写自己本次的项目名字; 

         (3):以上填完以后就会让你选需要哪些依赖:数据库用mysql,添加mysql依赖,用到了mybatis,所以添加mybatis依赖,

          使用SpringMVC 开发 web 应用,所以web依赖;

      2.接下来配置mybatis逆向工程:

       (1): 在pom.xml中添加mybatis generator插件;

                 <!--
                    mybatis根据表自动生成pojo类插件
                    1.mvn mybatis-generator:generate
                    2.mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate  [会覆盖同名文件]
                -->
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.5</version>
                </plugin>            

        (2): 在resource下新建generatorConfig.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfiguration
            PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
            "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    <!-- mybatis-generator的核心配置文件 -->
    <generatorConfiguration>
      <!--
            这里填数据库驱动包的绝对路径
      -->
        <classPathEntry location="D:android
    epositorymysqlmysql-connector-java5.1.36mysql-connector-java-5.1.36.jar"/>
    
        <context id="DB2Tables" targetRuntime="MyBatis3">
            <!--
                是否去除所有自动生成的文件的时间戳:
                是否去除所有自动生成文件的注释:
             -->
            <commentGenerator>
                <property name="suppressDate" value="true"/>
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
    
            <!--连接数据库的详细信息-->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://127.0.0.1:3306/rty?serverTimezone=GMT%2B8"
                            userId="xxx"
                            password="xxx">
            </jdbcConnection>
    
            <!--指定生成的类型为java类型,避免数据库中number等类型字段 -->
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!--自动生成的实体的存放包路径 -->
            <javaModelGenerator targetPackage="com.xxx.xxx.bean" targetProject="./src/main/java">
                <property name="enableSubPackages" value="true"/>
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
    
            <!--自动生成的*Mapper.xml文件存放路径 -->
            <sqlMapGenerator targetPackage="mapper" targetProject="./src/main/resources">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
    
            <!--自动生成的*Mapper.java存放路径 -->
            <javaClientGenerator type="XMLMAPPER" targetPackage="com.xxx.xxx.mapper"
                                 targetProject="./src/main/java">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
    
    
            <!-- 映射配置 tableName填表名,domainObjectName填生成pojo类的名字-->
            <table tableName="" domainObjectName=""/>
    
        </context>
    </generatorConfiguration>
    View Code

          这里是mysql配置文件,oracle的也就是把<classPathEntry>标签换成oracle驱动包,<jdbcConnection>标签内容改成连接oracle数据信息;

                    然后打开IDEA的控制台: 输入 mvn mybatis-generator:generate  or  mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate,等待几秒即可生成.

         3. application.properties配置文件: 

    #数据库连接信息
    spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 spring.datasource.username=xxx spring.datasource.password=xxx
    #指定端口 server.port
    =8888 #指定映射文件存放位置 mybatis.mapper-locations=classpath:/mapper/**/*.xml

     

      4.  Swagger:

          “  Swagger可以生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等  ”;

       在pom.xml中引入Swagger所需要的依赖:

         <!-- swagger api文档 -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.6.1</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.6.1</version>
            </dependency>

      

               在程序人口也就是XXApliication类下新建一个config包,新建一个Swagger2类:

    package com.asiainfo.rty.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2
    public class Swagger2 {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.xxx.xxx.web.controller"))  // 这里填写的是你controller所在类全包名;
                    .paths(PathSelectors.any())
                    .build();
        }
    /** * apiInfo()用来创建该Api的基本信息 */ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Spring Boot 测试使用 Swagger2 构建RESTful API") .contact(new Contact("xxx", "https://github.com/www2388258980/rty-service", "")) .description("API描述") .version("1.0") .build(); } }

          这里介绍关于Swagger几个我常用的几个注解的用法:

          [1]:  @Api(tags = "xxxx"):用在controller类上,tag中简单填写该类是做什么的;

         [2]: @ApiOperation(value = "xxx", notes = "xxx")用在方法上,描述该方法是做什么的;

         [3]:@ApiImplicitParams(value = {@ApiImplicitParam(name = "xxx", value = "xxxxxx....", required = true, paramType = "query")}),用在方法上,描述参数;

      5.项目结构就差不多了,不过还需要注意几点:

       (1): 一般使用@Autowired 注入dao层(也就是mapper包下的类),可是mapper下的文件是自动生成的,没有被注入到IOC容器中,除了一个个加@Repository的笨方法外,可以再config包下新建一个类:

    package com.asiainfo.rty.config;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Configuration;
    
    /*
     * 告诉spring为mapper类生成bean对象
     * */
    @Configuration
    @MapperScan("com.xxx.xxx.mapper")
    public class MybatisConfig {
    }

               (2): 分别启动前端后台,前端访问后台接口会因为浏览器的'同源策略'而没法从后台获取数据,解决办法之一就是在controller类上加注解 @CrossOrigin

    ..................................

       启动可以打开控制台: >   mvn spring-boot:run

       or  点击右上那个启动按钮;

     

  • 相关阅读:
    diary and html 文本颜色编辑,行距和其它编辑总汇
    bash coding to changeNames
    virtualbox ubuntu 网络连接 以及 连接 secureCRT
    linux 学习6 软件包安装
    linux 学习8 权限管理
    vim 使用2 转载 为了打开方便
    ubuntu
    linux 学习15 16 启动管理,备份和恢复
    linux 学习 14 日志管理
    linux 学习 13 系统管理
  • 原文地址:https://www.cnblogs.com/yangji0202/p/12346131.html
Copyright © 2011-2022 走看看