博客
关于我
【平台开发】— 5.后端:代码分层
阅读量:450 次
发布时间:2019-03-06

本文共 3015 字,大约阅读时间需要 10 分钟。

数据库准备就绪了,现在可以开始撸后端代码了。为了让前后端能够交互,首先需要后端能够返回数据。因此,我打算先开发一个返回用户信息的接口,然后根据前端传来的用户名和密码来验证用户是否存在,从而实现登录功能(注意:这里仅仅是为了学习目的,并不意味着真正的登录逻辑)。

1. 熟悉后端代码的分层

在开始编写代码之前,先熟悉一下后端的分层结构。后端使用Spring Boot框架,分为四个主要层次:POJO、DAO、Service和Controller。

2. POJO(实体类)

首先是POJO层,用于定义实体类。以用户信息为例,开发一个User类。这个类需要与数据库表对应,字段包括id、username、password等。为了简化代码书写,可以使用Lombok的@Data注解,这样就不需要手动写get/set/toString方法了。

package com.mock.platform.pojo;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;import lombok.Data;import javax.persistence.*;import java.util.Date;@Data@Entity@Table(name = "user")@JsonIgnoreProperties({"handler", "hibernateLazyInitializer"})public class User {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    @Column(name = "id")    private int id;    private String username;    private String password;    private Date createTime;}

3. DAO(数据访问对象)

DAO层负责与数据库进行交互。创建一个UserDAO接口,继承JpaRepository,这样可以直接使用Spring Data提供的常见CRUD方法和分页功能。

package com.mock.platform.dao;import com.mock.platform.pojo.User;import org.springframework.data.jpa.repository.JpaRepository;public interface UserDAO extends JpaRepository
{}

4. Service(业务逻辑层)

Service层是业务逻辑的核心,实现具体的业务逻辑。以查询用户信息为例,开发一个UserService类。通过Autowired注入UserDAO,调用 findAll方法获取所有用户数据,并使用Sort按id倒序排列。

package com.mock.platform.service;import com.mock平台.dao.UserDAO;import com.mock平台.pojo.User;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Sort;import org.springframework.stereotype.Service;@Servicepublic class UserService {    @Autowired    private UserDAO userDAO;    public List
userList() { Sort sort = Sort.by(Sort.Direction.DESC, "id"); return userDAO.findAll(sort); }}

5. Controller(控制器)

Controller层负责接收前端请求并返回响应。在UserController类中,使用@GetMapping注解暴露一个接口,返回所有用户信息。通过Autowired注入UserService,调用userList方法获取数据。

package com.mock.platform.controller;import com.mock.platform.pojo.User;import com.mock平台.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class UserController {    @Autowired    private UserService userService;    @GetMapping("/users")    public List
userList() throws Exception { return userService.userList(); }}

6. Properties(配置文件)

在properties文件中配置数据库和Spring的相关信息。确保数据库连接正确,并设置JPA的命名策略,去掉下划线。

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my_platform?characterEncoding=UTF-8&serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.jpa.hibernate.ddl-auto = nonespring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImplspring.jpa.show-sql=true

7. 验证

在本地启动服务器后,使用Postman发送GET请求到"/users"端点,查看返回的用户数据是否正确排序。确保数据库中有预先插入的3条用户数据。

通过以上步骤,一个简单的用户信息管理系统已经完成。接下来可以继续扩展功能,比如用户注册、登录验证、权限管理等。

转载地址:http://jzkfz.baihongyu.com/

你可能感兴趣的文章
Node-RED中连接Mysql数据库并实现增删改查的操作
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>
Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
查看>>
Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
查看>>
Node-RED怎样导出导入流程为json文件
查看>>
Node-RED订阅MQTT主题并调试数据
查看>>
Node-RED通过npm安装的方式对应卸载
查看>>
node-request模块
查看>>
node-static 任意文件读取漏洞复现(CVE-2023-26111)
查看>>
Node.js 8 中的 util.promisify的详解
查看>>
node.js debug在webstrom工具
查看>>
Node.js RESTful API如何使用?
查看>>
node.js url模块
查看>>
Node.js Web 模块的各种用法和常见场景
查看>>
Node.js 之 log4js 完全讲解
查看>>
Node.js 函数是什么样的?
查看>>
Node.js 函数计算如何突破启动瓶颈,优化启动速度
查看>>
Node.js 切近实战(七) 之Excel在线(文件&文件组)
查看>>
node.js 初体验
查看>>
Node.js 历史
查看>>