从SSM到SpringBoot的校园商铺系统

76 阅读3分钟

校园商铺全栈开发项目旨在构建一个线上校园商铺系统,包含商品展示、店铺管理、用户购物等功能。使用 SSM(Spring + Spring MVC + MyBatis)和 Spring Boot 两个版本开发,能让开发者对比传统 Java 开发与 Spring Boot 快速开发的差异。

# Java双版本(SSM到SpringBoot)校园商铺全栈开发(完结)

上方URL获取资源

开发环境准备

  • JDK:建议使用 JDK 8 及以上版本。

  • 数据库:MySQL,用于存储商品信息、店铺信息、用户信息等。

  • 开发工具:IntelliJ IDEA 或 Eclipse。

  • 项目管理工具:Maven,用于管理项目依赖。

SSM 版本开发

1. 项目搭建

  • 创建 Maven 项目:在 IDE 中创建一个 Maven Web 项目,添加 Spring、Spring MVC、MyBatis 等相关依赖。

xml

<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.23</version>
    </dependency>
    <!-- Spring MVC -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.23</version>
    </dependency>
    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.9</version>
    </dependency>
    <!-- MyBatis Spring 集成 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.7</version>
    </dependency>
    <!-- MySQL 驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
</dependencies>
  • 配置文件:创建 Spring 配置文件(applicationContext.xml)、Spring MVC 配置文件(springmvc-servlet.xml)和 MyBatis 配置文件(mybatis-config.xml),配置数据源、事务管理等。

2. 数据库设计

  • 设计数据库表,如 shop(店铺表)、product(商品表)、user(用户表)、order(订单表)等。

sql

-- 创建店铺表
CREATE TABLE shop (
    shop_id INT AUTO_INCREMENT PRIMARY KEY,
    shop_name VARCHAR(100) NOT NULL,
    shop_address VARCHAR(200)
);

-- 创建商品表
CREATE TABLE product (
    product_id INT AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(100) NOT NULL,
    price DECIMAL(10, 2) NOT NULL,
    shop_id INT,
    FOREIGN KEY (shop_id) REFERENCES shop(shop_id)
);

3. 分层开发

  • 实体层(Entity) :创建与数据库表对应的 Java 实体类,如 ShopProduct 等。

java

public class Shop {
    private Integer shopId;
    private String shopName;
    private String shopAddress;
    // 省略 getter 和 setter 方法
}
  • 数据访问层(DAO) :使用 MyBatis 编写 Mapper 接口和对应的 XML 文件,实现对数据库的增删改查操作。

java

public interface ShopMapper {
    List<Shop> getAllShops();
}

xml

<mapper namespace="com.example.dao.ShopMapper">
    <select id="getAllShops" resultType="com.example.entity.Shop">
        SELECT * FROM shop
    </select>
</mapper>
  • 服务层(Service) :编写 Service 接口和实现类,调用 DAO 层方法完成业务逻辑。

java

public interface ShopService {
    List<Shop> getAllShops();
}

@Service
public class ShopServiceImpl implements ShopService {
    @Autowired
    private ShopMapper shopMapper;

    @Override
    public List<Shop> getAllShops() {
        return shopMapper.getAllShops();
    }
}
  • 控制层(Controller) :使用 Spring MVC 编写 Controller 类,处理客户端请求,调用 Service 层方法。

java

@Controller
@RequestMapping("/shop")
public class ShopController {
    @Autowired
    private ShopService shopService;

    @RequestMapping("/list")
    @ResponseBody
    public List<Shop> getShopList() {
        return shopService.getAllShops();
    }
}

4. 前端页面开发

使用 HTML、CSS、JavaScript 等技术开发前端页面,与后端进行数据交互。可以使用 jQuery 或 Vue.js 等框架简化开发。

Spring Boot 版本开发

1. 项目搭建

  • 使用 Spring Initializr(start.spring.io/)创建 Spring Boot 项目,添加 Spring Web、Spring Data JPA、MySQL Driver 等依赖。

2. 配置文件

application.propertiesapplication.yml 中配置数据库连接信息等。

yaml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/campus_shop
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

3. 分层开发

  • 实体层(Entity) :使用 JPA 注解创建实体类。

java

@Entity
@Table(name = "shop")
public class Shop {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer shopId;
    private String shopName;
    private String shopAddress;
    // 省略 getter 和 setter 方法
}
  • 数据访问层(Repository) :使用 Spring Data JPA 编写 Repository 接口。

java

public interface ShopRepository extends JpaRepository<Shop, Integer> {
}
  • 服务层(Service) :编写 Service 接口和实现类。

java

public interface ShopService {
    List<Shop> getAllShops();
}

@Service
public class ShopServiceImpl implements ShopService {
    @Autowired
    private ShopRepository shopRepository;

    @Override
    public List<Shop> getAllShops() {
        return shopRepository.findAll();
    }
}
  • 控制层(Controller) :编写 Controller 类处理请求。

java

@RestController
@RequestMapping("/shop")
public class ShopController {
    @Autowired
    private ShopService shopService;

    @GetMapping("/list")
    public List<Shop> getShopList() {
        return shopService.getAllShops();
    }
}

4. 前端页面开发

同样使用 HTML、CSS、JavaScript 等技术开发前端页面,与后端进行数据交互。可以使用 Thymeleaf 作为模板引擎,方便前后端数据绑定。