接口开发
服务端常见开发工具为Intellij IDEA、MyEclipse、Eclipse等,服务端开发如涉及IDE,均为Intellij IDEA。
1. 源码结构
.
├─common
│ ├─src
│ │ └─main
│ │ └─java
│ │ └─com.acrel
│ │ ├─api
│ │ ├─entity ①
│ │ ├─enums
│ │ ├─exceptions
│ │ └─utils
│ └─pom.xml
├─service-system
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com.acrel
│ │ │ ├─system ②
│ │ │ └─ServiceSystemApplication
│ │ └─resources
│ │ ├─mybatis.mapper ③
│ │ ├─application.yml
│ │ └─bootstrap.yml
│ └─pom.xml
└─pom.xml
2. 接口开发
要开发一个接口,按照如下步骤,注意其中的包路径,使用不同的包对功能进行区分:
- 在数据库中创建相应的表;
- 在①中创建实体类;
- 在②中为功能创建相应的包和java文件;
- 在③中创建相应的包和xml文件;
- 启动service-system项目,调试接口。
.
├─common
│ ├─src
│ │ └─main
│ │ └─java
│ │ └─com.acrel
│ │ ├─api
│ │ ├─entity.system.book ①
│ │ │ └─Book.java
│ │ ├─enums
│ │ ├─exceptions
│ │ └─utils
│ └─pom.xml
├─service-system
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com.acrel
│ │ │ ├─system
│ │ │ │ └─book ②
│ │ │ │ ├─controller
│ │ │ │ │ └─BookController.java
│ │ │ │ ├─dao
│ │ │ │ │ └─BookDAO.java
│ │ │ │ └─controller
│ │ │ │ ├─impl
│ │ │ │ │ └─BookServiceImpl.java
│ │ │ │ └─BookService.java
│ │ │ └─ServiceSystemApplication
│ │ └─resources
│ │ ├─mybatis.mapper.book ③
│ │ │ └─BookMapper.xml
│ │ ├─application.yml
│ │ └─bootstrap.yml
│ └─pom.xml
└─pom.xml
Book.java
package com.acrel.entity.system.book;
import lombok.Data;
/**
* 书籍类
* @author tyrival
*/
@Data
public class Book {
/**
* ID
*/
private Long id;
/**
* 书名
*/
private String name;
/**
* 作者
*/
private String author;
}
BookDAO.java
package com.acrel.system.book.dao;
import com.acrel.entity.system.book.Book;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
@Mapper
@Component
public interface BookDAO {
/**
* 新增
* @param book
* @return
*/
int insert(Book book);
}
BookService.java
package com.acrel.system.book.service;
import com.acrel.entity.system.book.Book;
public interface BookService {
/**
* 新增
* @param book
* @return
*/
int insert(Book book);
}
BookServiceImpl.java
package com.acrel.system.book.service.impl;
import com.acrel.entity.system.book.Book;
import com.acrel.system.book.dao.BookDAO;
import com.acrel.system.book.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class BookServiceImpl implements BookService {
@Autowired
private BookDAO bookDAO;
@Override
public int insert(Book book) {
return this.bookDAO.insert(book);
}
}
BookController.java
package com.acrel.system.book.controller;
import com.acrel.api.ControllerName;
import com.acrel.entity.base.Result;
import com.acrel.entity.system.book.Book;
import com.acrel.exceptions.ExceptionEnum;
import com.acrel.system.book.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(ControllerName.BOOK)
public class BookController {
@Autowired
private BookService bookService;
@PostMapping("/create")
public Result create(Book book) {
int i = this.bookService.insert(book);
return i > 0 ? Result.success() : Result.fail(ExceptionEnum.CREATE_FAIL);
}
}
BookMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.acrel.system.book.dao.BookDAO">
<resultMap id="bookResultMap" type="com.acrel.entity.system.book.Book">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="author" column="author"/>
</resultMap>
<insert id="insert" parameterType="com.acrel.entity.system.book.Book">
INSERT INTO t_book
(id, name, author)
VALUES
(#{id}, #{name}, #{author})
</insert>
</mapper>
至此,一个服务端用于插入Book数据的接口开发完成,启动项目后,即可通过HTTP请求访问接口。