SpringBoot项目大体框架

实体类Po

@EqualsAndHashCode(callSuper = true):生成 equals() 和 hashCode() 方法,以便在比较对象时考虑父类的字段。
@Data:自动生成 Java 类中的一些标准方法,如 toString()、hashCode()、equals()、getter 和 setter 方法。
@TableName(“table_user”):MyBatis-Plus 中的注解,用于将实体类与数据库表进行映射,指定实体类对应的数据库表名称。
private static final long serialVersionUID = 1L;:确保序列化和反序列化过程中类的版本一致性。

@EqualsAndHashCode(callSuper = true)
@Data
@TableName("table_user")
public class userPo extends BasePo implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer userId;
    private String userName;
    private String userPassword;
    }

请求实体类

private static final long serialVersionUID = 1L;:确保序列化和反序列化过程中类的版本一致性。
@NotNull:在对象校验中使用,用于验证一个对象引用是否为 null,不对其包含的属性进行进一步校验。
@NotBlank:用于检查一个字符串是否为非空或长度大于0(去掉前后空格后)。适用于字符串类型的字段。空格不算有效字符。
@Valid:对嵌套对象或集合中的元素也进行一一验证。

@Data
public class UserReq implements Serializable {

    private static final long serialVersionUID = 1L;

    @NotNull(message = "用户Id不能为空")
    private Long userId;

    @NotBlank(message = "用户名不能为空")
    @Size(max = 10,message = "用户名不能超过10字符")
    private String userName;
    
    @Valid
    private List<Class> userClassList;

响应实体类

@TableId(value = “id”, type = IdType.AUTO):标记为主键,并设置主键生成策略为自动增长,这样在插入数据时,数据库会自动为 id 字段生成递增的唯一主键值。

@Data
public class UserResp implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long userId;

    private String userName;
    }

mapper.xml

具体:https://blog.csdn.net/LYly_B/article/details/137500620?spm=1001.2014.3001.5501

<!--固定文件头-->
<?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.bai.dao.UserMapper">

<!--数据库字段映射-->
	<resultMap id="UserResultMap" type="com.bai.pojo.User">
	    <id property="user_id" column="userId" />
	    <result property="user_name" column="userName" />
	    <result property="user_password" column="userPassword" />
	</resultMap>
	
<!--通用查询结果列-->
    <sql id="User_List">
        user_id, user_name, user_password
    </sql>
    
<!--增删改查语句-->
	<insert id="insertUser" parameterType="com.example.model.User">
	    INSERT INTO user (name, age) VALUES (#{name}, #{age})
	</insert>
	
</mapper>    

mapper:

@Repository:将该 Mapper 接口标识为一个 Spring Bean,让 Spring 能够扫描并管理这个接口
extends BaseMapper:继承基础mapper中简单增删改查的实现,减少代码量

@Repository
public interface typeMapper extends BaseMapper<typePo> {
    List<typeDo> listtype();
    versionPo getversionById(String id);
}

Service:

public interface UserService extends IService<UserPo> {
    UserResp listUser();
    String insertUserClass(UserReq userReq, Integer classId);
    }

ServiceImpl:

@Service:标识类为服务层组件(Service)的注解
@Slf4j:简化在 Java 类中添加日志功能的步骤
@Autowired:用于自动装配依赖关系的注解
@Transactional(rollbackFor = Exception.class):标记一个事务,中间有任何步骤失败了都会整个回退。

@Service
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper, UserPo> implements UserService {

    @Autowired
    UserMapper userMapper;
    @Autowired
    RedisCacheUtils cacheUtils;

    @Transactional(rollbackFor = Exception.class)
    @Override
    public UserResp listUser() {
        UserResp userResp = new UserResp();
        //业务代码
        if (某业务出错) {
            log.error("XXX业务有误", 错误参数);
            throw new BusinessException("XXX业务有误");
        }
        //业务代码
        return userResp;
    }
}

controller:

@RestController:用于处理HTTP请求,返回JSON数据作为响应。
@RequestMapping(“/index”):指定控制器可以处理哪些url请求。
@Slf4j:用于管理和输出日志。

@RestController
@RequestMapping("/index")
@Slf4j
public class UserController {

    @Autowired
    UserService userService;
    
    @Autowired
    RedisCacheUtils cacheUtils;
    @Autowired
    private RabbitmqUtil rabbitmqUtil;
    @Autowired
    private SaveEventLogUtil saveEventLogUtil;
    @Autowired
    RabbitmqProperties rabbitmqProperties;

    @PostMapping("/user")
    public JSONObject getUserList() {
        return CommonUtil.successJson(userService.listUser());
    }

    @PostMapping("/insertUserClass")
    public JSONObject update(@RequestBody @Valid UserReq userReq, HttpServletRequest request) {
        JWTToken jwtToken = jwtTokenUtil.getUser(request);
        return CommonUtil.successJson(userService.insertUserClass(userReq,jwtToken.getId()));
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值