我们接着上篇继续写,继续进行springboot项目

一. swagger2
接口描述,测试每个接口是否有效

1. 添加依赖 pom.xml
在编辑pom.xml之前,要先关闭spring-boot项目
eclipse 编辑pom.xml。当编辑完毕保存pom.xml后eclipse会帮我们自动下载依赖。eclipse这个自动化操作可能会出现一些问题。

mvn install

<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>

2. 添加配置文件

WebConfig.java
package com.briup.apps.poll.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET","POST","PUT","OPTIONS","DELETE","PATCH").allowCredentials(true).maxAge(3600);
}
}
 
Swagger2.java
/**
* Project Name:poll
* File Name:Swagger2.java
* Package Name:com.briup.apps.poll.config
* Date:2018年6月10日下午6:22:51
* Copyright (c) 2018, chenzhou1025@126.com All Rights Reserved.
*
*/
package com.briup.apps.poll.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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* ClassName:Swagger2 <br/>
* Function: TODO ADD FUNCTION. <br/>
* Reason: TODO ADD REASON. <br/>
* Date: 2018年6月10日 下午6:22:51 <br/>
* @author lichunyu
* @version
* @since JDK 1.6
* @see
*/
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.briup.apps.poll.web"))
.paths(PathSelectors.any())
.build();
} private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("yqg,课调系统API")
.description("谷歌搜索引擎-请翻墙进入,http://www.google.com")
.termsOfServiceUrl("http://www.google.com")
.version("1.0")
.build();
}
}
 

然后在浏览器输入http://localhost:8080/swagger-ui.html,你就可以访问你的接口,并且进行测试

补充一下:

package com.briup.apps.poll.config;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Configuration; @Configuration
@MapperScan("com.briup.apps.poll.dao")
public class MybatisConfig { }

这个配置文件MybatiesConfig.java的作用是为了能够自动找到dao层中的Mapper

二.如果你是一个好的程序员或者想成为一个好的程序员,github是你必须用的工具

在eclipse上使用git的功能实现本地和远程仓库代码的上传和下载,首先你需要一个github账号,创建一个仓库和你的项目名一样,然后在eclipse上打开windows->preperences->git->configuation,选择Reposity Settings,选择你要上传的项目,会自动给你配置一个github配置文件的位置,点击open,进行配置

[core]
symlinks = false
repositoryformatversion =
filemode = false
logallrefupdates = true
[remote "origin"]
url = https://github.com/qingguoYan/poll3.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master

注意:url是你的项目的github仓库地址,配置完成后保存,右击项目->team->share Project,再次点击team->commit,选择你unstaged文件下拉到staged,输入commit message,提交你的代码到本地仓库,然后才能提交到远程仓库。

提交到远程仓库:team->removeto->push,填写你要上传的远程仓库地址,next,选择master,add,next,输入两次上传密码,完成后再github上刷新你的仓库,发现你的仓库有你的项目了,大功告成!

三.使用mybatis generator构建数据库访问层,但是只适用对单表的操作

编写数据访问层代码三种方式
1. 手动编写(风格不统一,时间较长,冗余过高)
2. 自己封装
BaseDao
3. Mybatis generator(最优!)
根据表自动产生pojo,映射接口,映射文件
mybatis swagger ,插件(用一次)
1) 在pom.xml添加插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
</plugin>
2) 添加配置文件
1. 根据哪些表产生
2. 产生出来的pojo放到哪里
3. 产生出来的Mapper接口放到哪里
4. 产生出来的Mapper文件放到哪里
5. 如何产生
...

<?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="C:\briup\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar"/> <context id="DB2Tables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/poll2.0"
userId="root"
password="root">
</jdbcConnection> <!--指定生成的类型为java类型,避免数据库中number等类型字段 -->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <!--自动生成的实体的存放包路径 -->
<javaModelGenerator targetPackage="com.briup.apps.poll.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.briup.apps.poll.dao" targetProject="./src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator> <!-- 映射配置 --> <table tableName="poll_school" domainObjectName="School" ></table>
<table tableName="poll_grade" domainObjectName="Grade" ></table>
<table tableName="poll_clazz" domainObjectName="Clazz" ></table>
<table tableName="poll_course" domainObjectName="Course" ></table>
<table tableName="poll_user" domainObjectName="User" ></table>
<table tableName="poll_options" domainObjectName="Options" ></table>
<table tableName="poll_question" domainObjectName="Question" ></table>
<table tableName="poll_questionnaire" domainObjectName="Questionnaire" ></table>
<table tableName="poll_qq" domainObjectName="QuestionnaireQuestion" ></table>
<table tableName="poll_survey" domainObjectName="Survey" ></table>
<table tableName="poll_answers" domainObjectName="Answers" ></table>
</context>
</generatorConfiguration>

3) 开始工作(关闭掉应用程序)
$ mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate

完成后你会发现你的项目自动生成bean,dao,mapper.xml,非常节约时间,便于对单表进行操作。

四.统一开发相应接口

后台开发---》前端开发的响应模式统一,返回状态有两种
1.{
status:200
message:'success'
data:[]
}

2.{
status:500
message:'数据库异常'
data:null
}

package com.briup.apps.poll.util;

public class MsgResponse {
private Integer stauts; //状态码 200 成功 500代码异常
private String message; //错误、成功信息
private Object data; //数据 500 null public static MsgResponse success(String message, Object data){
MsgResponse response = new MsgResponse();
response.setStauts();
response.setMessage(message);
response.setData(data);
return response;
} public static MsgResponse error(String message){
MsgResponse response = new MsgResponse();
response.setStauts();
response.setMessage(message);
response.setData(null);
return response;
} public Integer getStauts() {
return stauts;
}
public void setStauts(Integer stauts) {
this.stauts = stauts;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}

完成一个springboot项目的完整总结-------二的更多相关文章

  1. 完成一个springboot项目的完整总结一

    一. 项目的基础环境的搭建 1.javaJDK的安装和配置环境变量 2.mysql 3.eclipse 二.项目高级环境的搭建 使用maven前,一定要先安装JDK 1) 解压maven到briup目 ...

  2. 完成一个springboot项目的完整总结------三

    这一次的总结是最关键的部分,主要涉及了ORM的三种操作,这些操作是项目的难点,三种操作包括多对一.多对多.一对多三种模式,接下来展示项目代码 1.多对一 clazz表对应grade表和charge表 ...

  3. 从零开始的SpringBoot项目 ( 二 ) 使用IDEA创建一个SpringBoot项目

    工欲善其事 , 必先利其器 . IntelliJ IDEA 2019.3.3 x64的安装与破解 下面详细说明下如何使用idea创建我们的第一个springboot项目: 首先打开idea主界面选择 ...

  4. springboot:快速构建一个springboot项目

    前言: springboot作为springcloud的基础,springboot的热度一直很高,所以就有了这个springboot系列,花些时间来了解和学习为自己做技术储备,以备不时之需[手动滑稽] ...

  5. spting Boot 创建一个springBoot项目

    spting Boot 创建一个springBoot项目 1)学习springBoot使用软件:IDEA软件(前面的文章有安装idea的过程). 也可以使用另一种方法在https://start.sp ...

  6. 第一个springboot项目

    公司最近的项目在使用springboot和springcloud中的一些组件,刚开始就是主要写一些业务代码,并不了解具体要去怎么配置等,所以最近刚好有时间,就学习学习,记录总结一下,初学,欢迎指正. ...

  7. 【spring Boot】1.创建第一个springBoot项目

    入手springBoot,搭建第一个springBoot项目. 看官方文档还是有点别扭. https://docs.spring.io/spring-boot/docs/current-SNAPSHO ...

  8. 使用IDEA创建一个springboot项目

    工欲善其事,必先利其器. 不难发现,还是有很多小朋友在使用eclipse开发java项目.当你接触IDEA后,一切都变得美好了. 使用IDEA创建一个springboot项目是一件极其简单的事情.界面 ...

  9. docker 中部署一个springBoot项目

    docker 中部署一个springBoot项目 (1)介绍 springBoot项目 1.项目结构 2.pom.xml <?xml version="1.0" encodi ...

随机推荐

  1. mvn命令着中package、install、deploy的区别

    参考:https://blog.csdn.net/zhaojianting/article/details/80324533 常用操作区别 mvn clean package 依次执行了clean.r ...

  2. AR*客户地点分配OU

    DECLARE p_cust_acct_site_rec hz_cust_account_site_v2pub.cust_acct_site_rec_type; p_cust_site_use_rec ...

  3. maven工程目录和类加载器ClassLoader的记录

    URL url = this.getClass().getClassLoader().getResource("/" + packageName.replaceAll(" ...

  4. 中国大学MOOC-翁恺-C语言程序设计习题集(二)

    04-0. 求符合给定条件的整数集(15)给定不超过6的正整数A,考虑从A开始的连续4个数字.请输出所有由它们组成的无重复数字的3位数. 输入格式: 输入在一行中给出A. 输出格式: 输出满足条件的的 ...

  5. [LOJ#3119][Luogu5405][CTS2019]氪金手游(DP+容斥)

    先考虑外向树的做法,显然一个点在其子树内第一个出现的概率等于它的权值除以它子树的权值和.于是f[i][j]表示i的子树的权值和为j时,i子树内所有数的相互顺序都满足条件的概率,转移直接做一个背包卷积即 ...

  6. redis订阅与发布系统

    一.概述 1.redis通过publish.subscribe等命令实现了订阅与发布模式. 2.这个功能提供两种信息机制,分别是订阅/发布到频道和订阅/发布到模式. 二.频道的订阅与信息发送 1.re ...

  7. 二分法在JavaScript中的应用实例

    前言:原来一直对算法和数据结构望而却步,总觉得前端可能对这块要求不用那么高,但是随着开发经验的增长以及阅历的提升,发现算法和数据结构还是相当重要的,在一些复杂功能的研发中都可以看得到它们的身影.要想提 ...

  8. angularjs 文件下载 并 从response header中获取文件名

    最近在做一个下载文件的功能,后台接口给的是二进制流的方式,那么前端要把二进制流下载下来. 这个过程使用$http的get请求,使用Blob接收,倒是没有难度,主要是遇到了,后台的文件名拿不到 的问题. ...

  9. Java调用WebService方法总结(1)--准备工作

    WebService是一种跨编程语言.跨操作系统平台的远程调用技术,已存在很多年了,很多接口也都是通过WebService方式来发布的:本系列文章主要介绍Java调用WebService的各种方法,使 ...

  10. 移动Web深度剖析

    随着前端技术的急速发展,随着互联网行业的日益发展,HTML5作为一种比较新型的开发技术早已经被很多大的企业所应用,通过HTML5语言可以开发适用于任何设备上的酷炫网站页面,所以HTML5的发展趋势可想 ...