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

本文共 3071 字,大约阅读时间需要 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;
@Service
public 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;
@RestController
public 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=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto = none
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.show-sql=true

7. 验证

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

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

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

你可能感兴趣的文章
Nacos集群搭建
查看>>
nacos集群搭建
查看>>
Navicat for MySQL 查看BLOB字段内容
查看>>
Neo4j电影关系图Cypher
查看>>
Neo4j的安装与使用
查看>>
Neo4j(2):环境搭建
查看>>
Neo私链
查看>>
nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
Nessus漏洞扫描教程之配置Nessus
查看>>
Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
查看>>
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
netcat的端口转发功能的实现
查看>>
netfilter应用场景
查看>>
netlink2.6.32内核实现源码
查看>>
Netpas:不一样的SD-WAN+ 保障网络通讯品质
查看>>
NetScaler的常用配置
查看>>
netsh advfirewall
查看>>
NETSH WINSOCK RESET这条命令的含义和作用?
查看>>
Netty WebSocket客户端
查看>>