当前位置: 首页 > news >正文

若依原理笔记

代码生成器

源码分析

image-20250406131956923

image-20250406133033638

查询数据库列表

image-20250406135656422

导入表结构

image-20250406135913127

image-20250406141832888

生成代码

image-20250406142823310

image-20250406144027079

修改generator.yml配置文件

image-20250406144357027

代码生成器增强

image-20250406144824637

Velocity模版引擎

image-20250406145103253

image-20250406150734182

基础语法-变量

image-20250406151343920

Lombok集成

E:\javaProject\dkd-parent\dkd-generator\src\main\resources\vm\java\domain.java.vm

package ${packageName}.domain;

#foreach ($import in $importList)
import ${import};
#end
import com.dkd.common.annotation.Excel;
#if($table.crud || $table.sub)
import com.dkd.common.core.domain.BaseEntity;
#elseif($table.tree)
import com.dkd.common.core.domain.TreeEntity;
#end
## 导入lombok相关注解
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

/**
 * ${functionName}对象 ${tableName}
 *
 * @author ${author}
 * @date ${datetime}
 */
#if($table.crud || $table.sub)
#set($Entity="BaseEntity")
#elseif($table.tree)
#set($Entity="TreeEntity")
#end
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ${ClassName} extends ${Entity}
{
    private static final long serialVersionUID = 1L;

#foreach ($column in $columns)
#if(!$table.isSuperColumn($column.javaField))
    /** $column.columnComment */
#if($column.list)
#set($parentheseIndex=$column.columnComment.indexOf("("))
#if($parentheseIndex != -1)
#set($comment=$column.columnComment.substring(0, $parentheseIndex))
#else
#set($comment=$column.columnComment)
#end
#if($parentheseIndex != -1)
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
#elseif($column.javaType == 'Date')
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
#else
    @Excel(name = "${comment}")
#end
#end
    private $column.javaType $column.javaField;

#end
#end
#if($table.sub)
    /** $table.subTable.functionName信息 */
    private List<${subClassName}> ${subclassName}List;

#end
}

Swagger集成

package ${packageName}.controller;

import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.dkd.common.core.domain.R;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.dkd.common.annotation.Log;
import com.dkd.common.core.controller.BaseController;
import com.dkd.common.core.domain.AjaxResult;
import com.dkd.common.enums.BusinessType;
import ${packageName}.domain.${ClassName};
import ${packageName}.service.I${ClassName}Service;
import com.dkd.common.utils.poi.ExcelUtil;
#if($table.crud || $table.sub)
import com.dkd.common.core.page.TableDataInfo;
#elseif($table.tree)
#end

/**
 * ${functionName}Controller
 * 
 * @author ${author}
 * @date ${datetime}
 */
@Api(tags = "${functionName}Controller")
@RestController
@RequestMapping("/${moduleName}/${businessName}")
public class ${ClassName}Controller extends BaseController
{
    @Autowired
    private I${ClassName}Service ${className}Service;

    /**
     * 查询${functionName}列表
     */
    @ApiOperation(value = "查询${functionName}列表")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')")
    @GetMapping("/list")
#if($table.crud || $table.sub)
    public TableDataInfo list(${ClassName} ${className})
    {
        startPage();
        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
        return getDataTable(list);
    }
#elseif($table.tree)
    public AjaxResult list(${ClassName} ${className})
    {
        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
        return R.ok(list);
    }
#end

    /**
     * 导出${functionName}列表
     */
    @ApiOperation(value = "导出${functionName}列表")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')")
    @Log(title = "${functionName}", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ${ClassName} ${className})
    {
        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
        ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class);
        util.exportExcel(response, list, "${functionName}数据");
    }

    /**
     * 获取${functionName}详细信息
     */
    @ApiOperation(value = "获取${functionName}详细信息")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')")
    @GetMapping(value = "/{${pkColumn.javaField}}")
    public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField})
    {
        return R.ok(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}));
    }

    /**
     * 新增${functionName}
     */
    @ApiOperation(value = "新增${functionName}")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')")
    @Log(title = "${functionName}", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ${ClassName} ${className})
    {
        return toAjax(${className}Service.insert${ClassName}(${className}));
    }

    /**
     * 修改${functionName}
     */
    @ApiOperation(value = "修改${functionName}")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')")
    @Log(title = "${functionName}", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ${ClassName} ${className})
    {
        return toAjax(${className}Service.update${ClassName}(${className}));
    }

    /**
     * 删除${functionName}
     */
    @ApiOperation(value = "删除${functionName}")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')")
    @Log(title = "${functionName}", businessType = BusinessType.DELETE)
    @DeleteMapping("/{${pkColumn.javaField}s}")
    public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s)
    {
        return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s));
    }
}

RBAC权限控制

Spring Security:是一个功能强大的ava安全框架,它提供了全面的安全认证和授权的支持
与RBAC模型结合使用时,Spring Security能够实现灵活权限控制

用户登录流程

image-20250406175435469

获取用户角色权限

image-20250406181258968

动态菜单路由

image-20250406181455145

image-20250406185633487

image-20250406185830471

权限注解

image-20250406195851593

image-20250406202958676

image-20250406205757924

异步任务管理器

image-20250406210824690

image-20250406211813397

image-20250406212412394

操作日志

image-20250406212801954

image-20250406214328111

定时任务

image-20250406214616037

image-20250406214650737

image-20250406215305524

image-20250406215442807

image-20250406220126960

image-20250406221023948

image-20250406222245396

集群模式

image-20250406224738420 image-20250407162453229 image-20250407163709926

数据权限

image-20250407165956065

image-20250407170141921

业务改造

image-20250407171831741

image-20250407171849491

image-20250407171908203

image-20250407171940636

image-20250407174856484

image-20250407183248311

相关文章:

  • 8-运算符
  • Ubuntu16.04配置远程连接
  • java基础 数组Array的介绍
  • 版本控制工具——Git
  • 买不起了,iPhone 或涨价 40% ?
  • C++ 模板的应用——智能指针、STL库
  • MySQL学习笔记五
  • 电脑DNS出错无法打开网页
  • 笔记 2025/4/7
  • 构建一个最简单的UDP服务器和客户端并逐行解析
  • “暂不能解析域名”的错误的常见原因及解决方法
  • Spring Boot 项目日志系统全攻略:Logback、Log4j2、Log4j与SLF4J整合指南
  • Java中使用Function Call实现AI大模型与业务系统的集成​
  • SQL:数据类型(Data Types)
  • 懂x帝二手车数据爬虫-涉及简单的字体加密,爬虫中遇到“口”问题的解决
  • 可发1区的超级创新思路(python 实现):基于时空解耦和对比学习的可解释性模型
  • AI大模型底层技术——结合 Prompt Engineering 的 LoRA
  • 《C++速通秘籍》
  • GD32F407开发环境搭建
  • 基于Android的图书借阅和占座系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 南京鼓楼做网站/软文交易平台
  • 阿里云网站建设套餐/网页设计师
  • 免费合同模板网站/seo的英文全称是什么
  • 做网站英文怎么写/洛阳搜索引擎优化
  • 网站建设.龙兵/如何推广平台
  • 做物流的网站/金华百度seo