jeecgboot创建模块
时间: 2025-07-10 21:10:52 浏览: 12
### JeecgBoot 创建模块的教程与示例代码
JeecgBoot 提供了一套完整的框架用于快速创建新模块,无论是前端还是后端都可以通过简单的配置完成新增功能的开发。以下是具体的操作步骤以及相关示例代码。
---
#### 1. 后端模块创建
##### (1)实体类定义
在 `jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo` 路径下新建一个包名表示新的模块(如 `product`)。接着在此路径下创建一个新的实体类 `Product.java` 表示商品对象:
```java
package org.jeecg.modules.demo.product.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
@Data
@TableName("t_product")
public class Product {
@TableField(value = "id", exist = false)
private String id;
@Excel(name="商品名称")
@TableField("name")
private String name;
@Excel(name="价格")
@TableField("price")
private Double price;
@Excel(name="库存数量")
@TableField("stock")
private Integer stock;
}
```
此部分定义了一个名为 `t_product` 的表及其字段映射关系[^2]。
##### (2)Mapper 接口声明
在同一目录下的 `mapper` 文件夹中添加 Mapper 接口 `ProductMapper.java` 并继承 BaseMapper 泛型接口:
```java
package org.jeecg.modules.demo.product.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.jeecg.modules.demo.product.entity.Product;
@Mapper
public interface ProductMapper extends BaseMapper<Product> {}
```
##### (3)Service 及其实现层设计
继续在同一模块路径下建立 Service 接口和服务实现类分别命名为 `IProductService.java` 和 `ProductServiceImpl.java`:
```java
// IProductService.java
package org.jeecg.modules.demo.product.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.demo.product.entity.Product;
public interface IProductService extends IService<Product> {}
// ProductServiceImpl.java
package org.jeecg.modules.demo.product.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.demo.product.entity.Product;
import org.jeecg.modules.demo.product.mapper.ProductMapper;
import org.jeecg.modules.demo.product.service.IProductService;
import org.springframework.stereotype.Service;
@Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements IProductService {}
```
以上完成了基本的数据访问和业务逻辑封装[^2]。
##### (4)Controller 控制器编写
最后一步是在控制器层面暴露 RESTful API 给前端调用。同样位于相同路径下的 controller 文件夹里增加 `ProductController.java` :
```java
@RestController
@RequestMapping("/demo/product")
public class ProductController {
@Autowired
private IProductService productService;
/**
* 查询列表
*/
@GetMapping(value = "/list")
public Result<IPage<Product>> queryList(Product product,
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int limit){
Page<Product> pageData = new Page<>(page, limit);
QueryWrapper<Product> queryWrapper = Wrappers.query(product);
IPage<Product> result = productService.page(pageData, queryWrapper);
return Result.ok(result);
}
/**
* 添加记录
*/
@PostMapping(value = "/add")
public Result<?> add(@RequestBody Product product){
productService.save(product);
return Result.ok("保存成功!");
}
}
```
至此,后端模块已全部搭建完毕[^2]。
---
#### 2. 前端模块创建
JeecgBoot 使用 Ant Design Vue 框架构建前端界面,因此我们可以在 src/views 目录下按照约定俗成的位置找到 demo 文件夹并复制一份重命名成 product ,然后修改内部组件内容适配刚才后台生成的服务地址即可。
例如编辑 index.vue 文件调整请求 URL 对应到 `/demo/product/list` 等API 上去,并同步更新表格列展示项匹配数据库字段含义[^3]。
---
#### 3. 数据库脚本准备
为了确保程序能够正常运行还需要提前准备好 SQL 初始化语句用来创建 t_product 表结构:
```sql
CREATE TABLE IF NOT EXISTS `t_product` (
`id` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '主键ID',
`name` varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '商品名称',
`price` decimal(10 , 2 ) DEFAULT '0.00' COMMENT '单价',
`stock` int(11) DEFAULT '0' COMMENT '库存量',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=DYNAMIC ;
```
将其导入目标 MySQL 实例之中以便后续测试验证效果。
---
### 总结
综上所述,借助 JeecgBoot 自带的功能特性我们可以非常便捷高效地完成自定义业务模块从零起步直至上线部署全过程。不仅极大降低了传统手工编码的工作负担同时也保留了足够的灵活性满足各类实际应用场景需求[^1]。
---
阅读全文
相关推荐


















