欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 若依原理笔记

若依原理笔记

2025/6/6 16:43:37 来源:https://blog.csdn.net/QQ2861104332/article/details/147050558  浏览:    关键词:若依原理笔记

代码生成器

源码分析

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
#endprivate $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
{@Autowiredprivate 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)@PostMappingpublic 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)@PutMappingpublic 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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词