校园商铺全栈开发项目旨在构建一个线上校园商铺系统,包含商品展示、店铺管理、用户购物等功能。使用 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 实体类,如
Shop、Product等。
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.properties 或 application.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 作为模板引擎,方便前后端数据绑定。