好的,下面是一个 基于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. 运行项目

  1. 启动数据库:确保MySQL数据库已经安装,并且你已经创建了campus_trading数据库。
  2. 启动Spring Boot项目:使用IDE(如IntelliJ IDEA或Eclipse)或命令行启动Spring Boot应用。mvn spring-boot:run
  3. 访问平台
    打开浏览器,访问 http://localhost:8080/。你将看到用户注册的前端页面。
  4. 接口测试
    使用Postman或浏览器访问以下接口进行测试:
    • 注册用户: POST http://localhost:8080/api/users/register
    • 用户登录: GET http://localhost:8080/api/users/login?username=yourUsername

5. 功能扩展

这个系统只是一个简单的示例,你可以在此基础上进行以下扩展:

  • 商品发布与浏览:创建商品实体类,并设计发布商品与查看商品的功能。
  • 支付接口:集成支付宝或微信支付接口,完成支付功能。
  • 订单管理:用户可以管理自己的订单,如支付、查看订单状态等。

总结

这份代码展示了如何使用 Spring Boot 开发一个简单的校园二手物品交易平台,涵盖了用户注册、登录等基础功能。你可以基于这个项目进行扩展,加入更多的功能模块,如商品发布、购物车、订单管理等,完成毕业设计项目。