好的,下面是一个 基于SpringBoot的校园二手物品交易平台系统 的简化版示例代码。这个示例包含了后端实现(Spring Boot、MySQL、Spring Security、MyBatis)和前端基础,主要功能包括用户注册、登录、商品展示与发布。
1. 创建 Spring Boot 项目
使用 Spring Initializr 创建 Spring Boot 项目,选择以下依赖:
- Spring Web
- Spring Data JPA
- MySQL Driver
- Spring Security
2. 项目目录结构
campus-second-hand-trading/
│
├── src/main/java/com/example/secondhand/
│ ├── controller/
│ │ └── UserController.java
│ ├── model/
│ │ ├── Product.java
│ │ └── User.java
│ ├── repository/
│ │ └── UserRepository.java
│ ├── service/
│ │ └── UserService.java
│ ├── application.properties
│ └── CampusSecondHandTradingApplication.java
│
└── src/main/resources/
├── application.properties
└── static/
└── index.html
3. 项目代码
3.1 application.properties
配置数据库连接和Spring Security基本设置。
# MySQL 配置
spring.datasource.url=jdbc:mysql://localhost:3306/campus_trading
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
# Spring Security 配置
spring.security.user.name=admin
spring.security.user.password=admin123
3.2 CampusSecondHandTradingApplication.java
这是Spring Boot的主类,用来启动应用。
package com.example.secondhand;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class CampusSecondHandTradingApplication {
public static void main(String[] args) {
SpringApplication.run(CampusSecondHandTradingApplication.class, args);
}
}
3.3 User.java
(实体类)
package com.example.secondhand.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
private String email;
// Getters and Setters
}
3.4 Product.java
(商品实体类)
package com.example.secondhand.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
private double price;
// Getters and Setters
}
3.5 UserRepository.java
(用户仓库接口)
package com.example.secondhand.repository;
import com.example.secondhand.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
3.6 UserService.java
(用户服务层)
package com.example.secondhand.service;
import com.example.secondhand.model.User;
import com.example.secondhand.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User registerUser(User user) {
return userRepository.save(user);
}
public User getUserByUsername(String username) {
return userRepository.findByUsername(username);
}
}
3.7 UserController.java
(用户控制器)
package com.example.secondhand.controller;
import com.example.secondhand.model.User;
import com.example.secondhand.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/register")
public User register(@RequestBody User user) {
return userService.registerUser(user);
}
@GetMapping("/login")
public User login(@RequestParam String username) {
return userService.getUserByUsername(username);
}
}
3.8 index.html
(简单的前端页面)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>校园二手物品交易平台</title>
</head>
<body>
<h1>欢迎来到校园二手物品交易平台</h1>
<div>
<h2>用户注册</h2>
<form id="register-form">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required><br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required><br><br>
<button type="submit">注册</button>
</form>
</div>
<script>
document.getElementById('register-form').addEventListener('submit', function(event) {
event.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
fetch('/api/users/register', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ username, password })
})
.then(response => response.json())
.then(data => alert('注册成功:' + JSON.stringify(data)))
.catch(error => console.error('Error:', error));
});
</script>
</body>
</html>
4. 运行项目
- 启动数据库:确保MySQL数据库已经安装,并且你已经创建了
campus_trading
数据库。 - 启动Spring Boot项目:使用IDE(如IntelliJ IDEA或Eclipse)或命令行启动Spring Boot应用。
mvn spring-boot:run
- 访问平台:
打开浏览器,访问http://localhost:8080/
。你将看到用户注册的前端页面。 - 接口测试:
使用Postman或浏览器访问以下接口进行测试:- 注册用户:
POST http://localhost:8080/api/users/register
- 用户登录:
GET http://localhost:8080/api/users/login?username=yourUsername
- 注册用户:
5. 功能扩展
这个系统只是一个简单的示例,你可以在此基础上进行以下扩展:
- 商品发布与浏览:创建商品实体类,并设计发布商品与查看商品的功能。
- 支付接口:集成支付宝或微信支付接口,完成支付功能。
- 订单管理:用户可以管理自己的订单,如支付、查看订单状态等。
总结
这份代码展示了如何使用 Spring Boot 开发一个简单的校园二手物品交易平台,涵盖了用户注册、登录等基础功能。你可以基于这个项目进行扩展,加入更多的功能模块,如商品发布、购物车、订单管理等,完成毕业设计项目。
发表回复