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插件;


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

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

Springboot + mybatis + React+redux+React-router+antd+Typescript(一): 后台Springboot+Mybatis的搭建Springboot + mybatis + React+redux+React-router+antd+Typescript(一): 后台Springboot+Mybatis的搭建


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE generatorConfiguration
3        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
4        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
5<!-- mybatis-generator的核心配置文件 -->
6<generatorConfiguration>
7  <!--
8        这里填数据库驱动包的绝对路径
9  -->
10    <classPathEntry location="D:\android\repository\mysql\mysql-connector-java\5.1.36\mysql-connector-java-5.1.36.jar"/>
11
12    <context id="DB2Tables" targetRuntime="MyBatis3">
13        <!--
14            是否去除所有自动生成的文件的时间戳:
15            是否去除所有自动生成文件的注释:
16         -->
17        <commentGenerator>
18            <property name="suppressDate" value="true"/>
19            <property name="suppressAllComments" value="true"/>
20        </commentGenerator>
21
22        <!--连接数据库的详细信息-->
23        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
24                        connectionURL="jdbc:mysql://127.0.0.1:3306/rty?serverTimezone=GMT%2B8"
25                        userId="xxx"
26                        password="xxx">
27        </jdbcConnection>
28
29        <!--指定生成的类型为java类型,避免数据库中number等类型字段 -->
30        <javaTypeResolver>
31            <property name="forceBigDecimals" value="false"/>
32        </javaTypeResolver>
33
34        <!--自动生成的实体的存放包路径 -->
35        <javaModelGenerator targetPackage="com.xxx.xxx.bean" targetProject="./src/main/java">
36            <property name="enableSubPackages" value="true"/>
37            <property name="trimStrings" value="true"/>
38        </javaModelGenerator>
39
40        <!--自动生成的*Mapper.xml文件存放路径 -->
41        <sqlMapGenerator targetPackage="mapper" targetProject="./src/main/resources">
42            <property name="enableSubPackages" value="true"/>
43        </sqlMapGenerator>
44
45        <!--自动生成的*Mapper.java存放路径 -->
46        <javaClientGenerator type="XMLMAPPER" targetPackage="com.xxx.xxx.mapper"
47                             targetProject="./src/main/java">
48            <property name="enableSubPackages" value="true"/>
49        </javaClientGenerator>
50
51
52        <!-- 映射配置 tableName填表名,domainObjectName填生成pojo类的名字-->
53        <table tableName="" domainObjectName=""/>
54
55    </context>
56</generatorConfiguration>
57

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配置文件:


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

  Swagger:


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

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


1
2
3
4
5
6
7
8
9
10
11
12
1     &lt;!-- swagger api文档 --&gt;
2        &lt;dependency&gt;
3            &lt;groupId&gt;io.springfox&lt;/groupId&gt;
4            &lt;artifactId&gt;springfox-swagger2&lt;/artifactId&gt;
5            &lt;version&gt;2.6.1&lt;/version&gt;
6        &lt;/dependency&gt;
7        &lt;dependency&gt;
8            &lt;groupId&gt;io.springfox&lt;/groupId&gt;
9            &lt;artifactId&gt;springfox-swagger-ui&lt;/artifactId&gt;
10            &lt;version&gt;2.6.1&lt;/version&gt;
11        &lt;/dependency&gt;
12

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
1package com.asiainfo.rty.config;
2
3import org.springframework.context.annotation.Bean;
4import org.springframework.context.annotation.Configuration;
5
6import springfox.documentation.builders.ApiInfoBuilder;
7import springfox.documentation.builders.PathSelectors;
8import springfox.documentation.builders.RequestHandlerSelectors;
9import springfox.documentation.service.ApiInfo;
10import springfox.documentation.service.Contact;
11import springfox.documentation.spi.DocumentationType;
12import springfox.documentation.spring.web.plugins.Docket;
13import springfox.documentation.swagger2.annotations.EnableSwagger2;
14
15@Configuration
16@EnableSwagger2
17public class Swagger2 {
18    @Bean
19    public Docket createRestApi() {
20        return new Docket(DocumentationType.SWAGGER_2)
21                .apiInfo(apiInfo())
22                .select()
23                .apis(RequestHandlerSelectors.basePackage(&quot;com.xxx.xxx.web.controller&quot;))  // 这里填写的是你controller所在类全包名;
24                .paths(PathSelectors.any())
25                .build();
26    }  
27
28    /**
29     * apiInfo()用来创建该Api的基本信息
30     */
31    private ApiInfo apiInfo() {
32        return new ApiInfoBuilder()
33                .title(&quot;Spring Boot 测试使用 Swagger2 构建RESTful API&quot;)
34                .contact(new Contact(&quot;xxx&quot;, &quot;https://github.com/www2388258980/rty-service&quot;, &quot;&quot;))
35                .description(&quot;API描述&quot;)
36                .version(&quot;1.0&quot;)
37                .build();
38    }
39
40}
41

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

@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包下新建一个类:


1
2
3
4
5
6
7
8
9
10
11
12
13
1package com.asiainfo.rty.config;
2
3import org.mybatis.spring.annotation.MapperScan;
4import org.springframework.context.annotation.Configuration;
5
6/*
7 * 告诉spring为mapper类生成bean对象
8 * */
9@Configuration
10@MapperScan(&quot;com.xxx.xxx.mapper&quot;)
11public class MybatisConfig {
12}
13

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

 

…………………………….

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

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

 

 

 

给TA打赏
共{{data.count}}人
人已打赏
安全技术

DES 加密 解密

2021-8-18 16:36:11

安全技术

C++ 高性能服务器网络框架设计细节

2022-1-11 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索