1. 项目背景与需求分析
大学生租房一直是个令人头疼的问题。记得我大三那年找房子,跑了十几家中介,看了不下二十套房源,最后签合同时还被坑了一笔"服务费"。正是这段经历让我萌生了开发一个专门服务大学生的房屋租赁系统的想法。
传统租房市场存在几个痛点:
- 信息不对称:虚假房源占比高达40%,学生很难辨别真伪
- 流程繁琐:看房→签约→付款需要多次线下往返
- 安全隐患:约30%的学生租房者遭遇过押金纠纷
我们的系统主要解决三大核心需求:
- 真实性保障:通过学生身份认证+房东资质审核的双重验证机制
- 流程线上化:从找房到签约的全流程电子化操作
- 资金监管:引入第三方支付平台进行租金托管
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术选型与架构设计
2.1 为什么选择Spring Boot
Spring Boot的自动配置特性让我们节省了约60%的初始配置时间。通过spring-boot-starter-web模块,我们快速集成了Tomcat和Spring MVC。特别值得一提的是它的"约定优于配置"理念,比如:
- 默认内嵌Tomcat容器
- 自动扫描@Component注解
- 预置的application.properties配置
java复制@SpringBootApplication
public class RentalApplication {
public static void main(String[] args) {
SpringApplication.run(RentalApplication.class, args);
}
}
2.2 数据库设计要点
我们采用MySQL 5.7,主要考虑其事务支持完善且社区活跃。核心表结构设计:
sql复制CREATE TABLE `house` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`price` decimal(10,2) NOT NULL,
`area` int(11) NOT NULL COMMENT '面积',
`address` varchar(200) NOT NULL,
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0-待租 1-已租',
`student_id` bigint(20) DEFAULT NULL COMMENT '租客ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
注意:所有金额字段必须使用decimal类型,float/double会出现精度丢失问题
2.3 安全方案设计
采用Spring Security + JWT的组合方案:
- 登录时生成JWT token
- 前端将token存入localStorage
- 每次请求携带token头
- 后端通过Filter校验token有效性
java复制@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.authorizeRequests()
.antMatchers("/api/auth/**").permitAll()
.anyRequest().authenticated()
.and()
.addFilter(ne
