Spring Boot简单应用——会员管理系统

简介

  本项目是使用Spring Boot编写的一个简单的会员管理系统。
  提供了会员的解决方案,主要有会员模块,管理员模块,礼品模块,商品模块,会员等级模块,生日提醒模块,积分模块,详细模块如下图
  功能构成

准备阶段
  • 导入项目
    通过链接GitHubCSDN资源下载项目文件
    下载后导入项目,这里我使用的IDE是IntelliJ IDEA
  • 导入数据库文件
    在项目的路径下可以找到db_membership.sql文件,该文件是MySQL的数据库数据文件。通过MySQL导入该文件生成数据库db_membership
  • 修改项目文件
    在项目路径下membership\src\main\resourcesemailConfig.properties文件,该文件是用于邮箱发送的功能,需要填入自己的邮箱和密码还有smtp,如果没有正确填入则不能正常使用邮箱的生日提醒功能
运行项目

通过以上的步骤,不出意外就可以直接运行MembershipApplication类的主方法,运行成功后可以直接访问localhost:8080,访问该地址会要求登录账户为admin或者123,密码为123(具体可看数据库中的admin表)
项目运行后的大致效果如下图
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
以上便是该项目的简述,当然了,里面的每一个类不可能一一简述,如果需要交流的可以邮件联系。
如果项目有任何问题可以在GitHub提交issue

### 创建简易会员管理系统 #### 1. 初始化项目结构 为了简化依赖管理和构建过程,推荐使用Spring Initializr来初始化项目。访问[start.spring.io](https://start.spring.io/)并设置如下参数: - Project: Maven Project - Language: Java - Spring Boot 版本:选择稳定版(如2.7.x) - Group 和 Artifact ID 可自定义命名 - Dependencies 添加 `Spring Web`, `Thymeleaf` (用于前端展示), `Spring Data JPA`, `MySQL Driver` 下载解压后的文件夹即为项目的根目录。 #### 2. 配置数据库连接 编辑`application.properties`文件,在其中加入数据库的相关配置信息[^3]: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/member_management?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password spring.jpa.hibernate.ddl-auto=update ``` 这里假设本地运行着一个名为`member_management`的MySQL实例;根据实际情况调整URL中的主机名、端口以及用户名密码字段的内容。 #### 3. 定义实体类 MemberEntity 创建一个新的Java类命名为MemberEntity.java作为持久化对象映射到关系型数据库表中成员记录的数据模型[^4]: ```java package com.example.membermanagement.model; import lombok.Data; import javax.persistence.*; @Entity @Table(name="members") @Data // Lombok annotation to reduce boilerplate code public class MemberEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique=true) private String email; @Column(nullable = false) private String name; @Column(nullable = true) private Integer age; } ``` 此段代码利用了Lombok库减少样板式的getter/setter方法编写工作量,并通过JPA注解指定了该POJO与数据库之间的关联规则。 #### 4. 编写数据访问层接口 IMemberRepository 新建IMemberRepository.java接口继承自 JpaRepository 接口以获得CRUD操作的支持功能: ```java package com.example.membermanagement.repository; import com.example.membermanagement.model.MemberEntity; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface IMemberRepository extends JpaRepository<MemberEntity,Long> { } ``` 上述声明使得开发者无需自行实现增删改查的基础逻辑便可以直接调用相应的方法完成对成员信息的操作请求处理流程。 #### 5. 构建服务层 ServiceImpl 类 继续扩展应用程序的功能层次体系结构——新增MemberServiceImpl.java负责业务逻辑封装: ```java package com.example.membermanagement.service.impl; import com.example.membermanagement.model.MemberEntity; import com.example.membermanagement.repository.IMemberRepository; import com.example.membermanagement.service.IMemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class MemberServiceImpl implements IMemberService { @Autowired private IMemberRepository memberRepo; public Iterable<MemberEntity> getAllMembers() { return this.memberRepo.findAll(); } public void addOrUpdate(MemberEntity entity){ this.memberRepo.save(entity); } public boolean deleteById(Long memberId){ try{ this.memberRepo.deleteById(memberId); return true; }catch(Exception e){ System.out.println(e.getMessage()); return false; } } } ``` 此类实现了来自上一层的服务契约接口所提供的抽象方法,具体来说就是提供了获取全部用户列表、保存更新单个用户的动作以及依据ID删除指定条目的能力。 #### 6. 控制器 Controller 层设计 最后一步是搭建RESTful API控制器MemberController.java以便接收HTTP请求并将它们转发给适当的服务组件进行进一步加工处理后再返回响应结果给客户端应用: ```java package com.example.membermanagement.controller; import com.example.membermanagement.model.MemberEntity; import com.example.membermanagement.service.IMemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/members") public class MemberController { @Autowired private IMemberService service; @GetMapping("") public List<MemberEntity> listAll(){ return (List<MemberEntity>)service.getAllMembers(); } @PostMapping("") @ResponseStatus(HttpStatus.CREATED) public void create(@RequestBody MemberEntity newMember){ service.addOrUpdate(newMember); } @PutMapping("/{id}") public void update(@PathVariable(value = "id") long id,@RequestBody MemberEntity updatedMemberDetails){ updatedMemberDetails.setId(id); service.addOrUpdate(updatedMemberDetails); } @DeleteMapping("/{id}") @ResponseStatus(HttpStatus.NO_CONTENT) public void remove(@PathVariable(value = "id")long id){ service.deleteById(id); } } ``` 至此为止已完成了一个基础版本的会员管理系统的搭建任务,能够支持基本的CURD操作并通过JSON格式交互传输数据至前后两端之间。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值