本文档讲述内容与代码示例可参见 Shoulder-Demo2

确保在您的 Shoulder / Spring-Boot 工程的 pom.xml 中包含 shoulder-web,并已配置好数据库访问。

Maven
<dependency>
    <groupId>cn.itlym</groupId>
    <artifactId>shoulder-starter-web</artifactId>
    <version>0.8.1<version>
</dependency>
Gradle
compile 'cn.itlym:shoulder-starter-web:0.8.1'
未创建工程?参考 link::shoulder_start.html[快速开始] 创建您的项目。

编码

实体类

Entity
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.shoulder.data.mybatis.template.entity.BaseEntity;
import org.shoulder.data.mybatis.template.entity.Entity;

/**
 * 用户实体,包含 id(自增 long 类型主键、父类内置)、name(名称)、创建时间(父类内置),修改时间(父类内置)
 *
 * @author lym
 * @objectType zh_CN=用户,en_US=UserInfo
 * @see Entity 提供了一些基础的字段:id、createTime、updateTime
 */
@Getter
@Setter
@Accessors(chain = true)
@ToString(callSuper = true)
@TableName("user_info")
public class UserEntity extends BaseEntity<Long> {

    @TableField(value = "name")
    private String name;

    @Override
    public String getObjectName() {
        return name;
    }
}

存储层

Mapper
import com.example.demo2.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.shoulder.data.mybatis.template.dao.BaseMapper;

import java.io.Serializable;

/**
 * 持久层
 *
 * @author lym
 */
@Mapper
public interface UserMapper extends BaseMapper<UserEntity> {
    // 无需写任何方法,只需继承即可拥有增删改查
}

服务层

Service
import com.example.demo2.entity.UserEntity;
import com.example.demo2.repository.UserMapper;
import org.shoulder.data.mybatis.template.service.BaseServiceImpl;
import org.springframework.stereotype.Service;

/**
 * User 服务层代码
*
 * @author lym
 */
@Service
public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserEntity> implements IUserService {
    // 无需写任何方法,只需继承即可拥有增删改查
}

控制器

Controller
import org.shoulder.core.converter.ShoulderConversionService;
import org.shoulder.web.template.crud.CrudController;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 不需要写基础代码,只需继承 CrudController 即可实现增删改查接口
 *
 * @author lym
 * <p>
 */
@Tag(name = "[DEMO2-UserController]-USER 接口演示", description = "USER 接口演示")
@RestController
@RequestMapping("user")
public class UserController extends CrudController<
        IUserService,
        UserEntity,
        Long,
        UserEntity,
        UserEntity,
        UserEntity,
        UserEntity> {

    public UserController(IUserService service, ShoulderConversionService conversionService) {
        super(service, conversionService);
    }

}

访问 Http 接口

查看所有接口文档

查询 id 为 1 的用户信息

分页查询

还包含新增、修改、删除、条件搜索等更高级用法,等你来体验!

小结

通过继承特定的 Controller,我们就实现了对数据库的“增删改查”、 HTTP 接口接口文档调用日志 等能力!

集成 Shoulder 非常的简单,只需要引入依赖即可使用!

Shoulder 的强大远不止这些功能,想要详细了解 Shoulder 的强大功能?那就继续往下看吧!

跟着 Demo 快速认识 Shoulder