建立基本的springboot项目

pom依赖
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.atguigu</groupId> <artifactId>payment-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>payment-demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.3.7.RELEASE</spring-boot.version> </properties> <dependencies> <!--web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--Swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <!--Swagger ui--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--mysql 驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--MyBatis-Plus:是MyBatis的增强--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1</version> </dependency> <!-- 生成自定义配置的元数据信息 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <!--微信支付SDK--> <dependency> <groupId>com.github.wechatpay-apiv3</groupId> <artifactId>wechatpay-apache-httpclient</artifactId> <version>0.3.0</version> </dependency> <!--json处理器--> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> <!--微信支付 APIv2 SDK--> <dependency> <groupId>com.github.wxpay</groupId> <artifactId>wxpay-sdk</artifactId> <version>0.0.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <!-- 项目打包时会将java目录中的*.xml文件也进行打包 --> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.7.RELEASE</version> <configuration> <mainClass>com.atguigu.paymentdemo.PaymentDemoApplication</mainClass> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build></project>
yml配置文件
server: port: 8090 #服务端口spring: application: name: payment-demo #应用的名字 jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/payment_demo?serverTimezone=GMT%2B8&characterEncoding=utf-8 username: root password: 123456mybatis-plus: configuration: #sql日志 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath:com/atguigu/paymentdemo/mapper/xml/*.xmllogging: level: root: info
swagger配置文件
package com.btlord.springboot_demo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2public class Swagger2Config { @Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(new ApiInfoBuilder().title("案例接口文档").build()); }}
package com.atguigu.paymentdemo.controller;import com.atguigu.paymentdemo.entity.Product;import com.atguigu.paymentdemo.service.ProductService;import com.atguigu.paymentdemo.vo.R;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;import java.util.Date;import java.util.List;@CrossOrigin //开放前端的跨域访问@Api(tags = "商品管理")@RestController@RequestMapping("/api/product")public class ProductController { @Resource private ProductService productService; @ApiOperation("测试接口") @GetMapping("/test") public R test(){ return R.ok().data("message", "hello").data("now", new Date()); } @ApiOperation("商品列表") @GetMapping("/list") public R list(){ List<Product> list = productService.list(); return R.ok().data("productList", list); }}
统一结果VO类
package com.atguigu.paymentdemo.vo;import lombok.Data;import lombok.experimental.Accessors;import java.util.HashMap;import java.util.Map;@Data@Accessors(chain = true)public class R { private Integer code; //响应码 private String message; //响应消息 private Map<String, Object> data = new HashMap<>(); public static R ok(){ R r = new R(); r.setCode(0); r.setMessage("成功"); return r; } public static R error(){ R r = new R(); r.setCode(-1); r.setMessage("失败"); return r; } public R data(String key, Object value){ this.data.put(key, value); return this; }}// 以下是使用方法package com.atguigu.paymentdemo.controller;import com.atguigu.paymentdemo.entity.Product;import com.atguigu.paymentdemo.service.ProductService;import com.atguigu.paymentdemo.vo.R;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;import java.util.Date;import java.util.List;@CrossOrigin //开放前端的跨域访问@Api(tags = "商品管理")@RestController@RequestMapping("/api/product")public class ProductController { @Resource private ProductService productService; @ApiOperation("测试接口") @GetMapping("/test") public R test(){ return R.ok().data("message", "hello").data("now", new Date()); } @ApiOperation("商品列表") @GetMapping("/list") public R list(){ List<Product> list = productService.list(); return R.ok().data("productList", list); }}
json配置
用的google的gson
yml已经配好了时间
数据库



依赖
<!--mysql驱动 默认版本8--><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId></dependency><!--持久层--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1</version></dependency>
MyBatis-Plus的配置文件
package com.atguigu.paymentdemo.config;import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Configuration;import org.springframework.transaction.annotation.EnableTransactionManagement;@Configuration@MapperScan("com.atguigu.paymentdemo.mapper")@EnableTransactionManagement //启用事务管理public class MyBatisPlusConfig {}
package com.atguigu.paymentdemo.entity;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;import lombok.Data;import java.util.Date;@Datapublic class BaseEntity { //定义主键策略:跟随数据库的主键自增 @TableId(value = "id", type = IdType.AUTO) private String id; //主键 private Date createTime;//创建时间 private Date updateTime;//更新时间}


<!-- 项目打包时会将java目录中的*.xml文件也进行打包 --><resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource></resources>mybatis-plus:configuration: #sql日志log-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath:com/atguigu/paymentdemo/mapper/xml/*.xml

