接口开发

服务端常见开发工具为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请求访问接口。

results matching ""

    No results matching ""