一、创建父工程
1、创建项目
2、导入父工程的jar包
<packaging>pom</packaging>
<name>Maven</name>
<!-- 统一管理jar包版本-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<junit.version>4.12</junit.version>
<log4.version>1.2.17</log4.version>
<lombok>1.16.18</lombok>
<mysql.version>8.0.15</mysql.version>
<druid.version>1.1.16</druid.version>
<mybatis.sping.boot.version>1.3.0</mybatis.sping.boot.version>
</properties>
<!-- 子模块继承之后,提供作用:锁定版本还有子模块不用写groupId和version-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>1.2.15</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.5.8</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<optional>true</optional>
</dependency>
</dependencies>
</dependencyManagement>
二、创建子工程
1、创建项目
2、导入jar包
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.5.8</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.mybatis.spring.boot</groupId>-->
<!-- <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>2.5.8</version>
</dependency>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
<version>2.5.8</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.22</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<version>2.5.8</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
</dependencies>
三、配置application.yml
server:
port: 8801
spring:
application:
name: cloud-payment-server
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false
username: root
password: root
#路径在mapper文件下
mybatis-plus:
mapper-locations: classpath:/mapper/*.xml
type-aliases-package: com.tianlong.springcloud.dao
四、写简单的代码实现测试
main主方法
@SpringBootApplication
@MapperScan("com.tianlong.springcloud.dao.**")
public class PayMain8801 {
private static final Logger logger = LoggerFactory.getLogger(PayMain8801.class);
public static void main(String[] args) {
logger.info("Starting MyApplication");
SpringApplication.run(PayMain8801.class,args);
logger.info("MyApplication started successfully");
}
}
1、entities层
实体类
@Data
@NoArgsConstructor //无参构造器
@AllArgsConstructor //全参构造器
@EqualsAndHashCode//调用日志方法输出日志
@Slf4j
public class TaUser implements Serializable {
private Integer id;
private String serial;
}
公共消息返回类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CommonResult<T> implements Serializable {
private Integer code;
private String message;
private T data;
public CommonResult(Integer code,String message){
this(code,message,null);
}
}
2、dao层
public interface UserDao {
int insert(TaUser taUser);
int create(TaUser taUser);
TaUser getT(@Param("id") Long id);
}
mapper层
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tianlong.springcloud.dao.UserDao">
<resultMap id="BaseResultMap" type="com.tianlong.springcloud.entitis.TaUser">
<id column="id" property="id" jdbcType="BIGINT"></id>
<result column="serial" property="serial" jdbcType="VARCHAR"></result>
</resultMap>
<!--useGeneratedKeys将数据库中生成的id主键返回给 keyProperty的id -->
<insert id="create" useGeneratedKeys="true" keyProperty="id" parameterType="com.tianlong.springcloud.entitis.TaUser">
insert into ta_user(id,serial) values(#{id},#{serial});
</insert>
<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.tianlong.springcloud.entitis.TaUser">
insert into ta_user(id,serial) values(#{id},#{serial});
</insert>
<select id="getT" resultMap="BaseResultMap">
select * from ta_user where id=#{id}
</select>
</mapper>
3、server层
public interface TaUserServer {
int insert(TaUser taUser);
public int create(TaUser taUser);
public TaUser getTa(Long id);
}
impl实现类 业务逻辑层
@Service
public class TaUserServerImpl implements TaUserServer {
@Autowired
private UserDao taUserDao;
@Override
public int insert(TaUser taUser) {
return taUserDao.insert(taUser);
}
@Override
public int create(TaUser taUser) {
return taUserDao.create(taUser);
}
@Override
public TaUser getTa(Long id) {
return taUserDao.getT(id);
}
}
4、控制层
@RestController
@Slf4j
public class TaUserController {
@Autowired
private TaUserServer taUserServer;
//加@RequestBody的请求方式想要以json格式发送数据
@PostMapping(value = "/TaUser/create")
public CommonResult<TaUser> create(@RequestBody TaUser taUser){
int result = taUserServer.insert(taUser);
log.info("插入数据"+result);
if (result>0){
return new CommonResult(200,"插入数据成功");
}else {
return new CommonResult(555,"插入数据失败 ");
}
}
//不加@RequestBody的请求方式 http://localhost:8801/TaUser/createT?id=13&serial=4556
@PostMapping(value = "/TaUser/createT")
public CommonResult<TaUser> createT( TaUser taUser){
int result = taUserServer.insert(taUser);
log.info("插入数据"+result);
if (result>0){
return new CommonResult(200,"插入数据成功");
}else {
return new CommonResult(555,"插入数据失败 ");
}
}
@GetMapping(value = "/getPay/get/{id}")
public CommonResult<TaUser> getPay(@PathVariable("id") Long id){
TaUser taUser = taUserServer.getTa(id);
if (taUser !=null){
return new CommonResult(200,"查询成功",taUser);
}else {
return new CommonResult(444,"没有记录,查询id:"+id);
}
}
}