有没有做吉祥物的网站,无锡电子商务网站建设公司,企业网站的建立视频,怎样进入wordpress仪表盘SpringBoot优点达项目实战#xff1a;获取系统配置接口#xff08;二#xff09; 文章目录 SpringBoot优点达项目实战#xff1a;获取系统配置接口#xff08;二#xff09;1、查看接口2、查看数据库3、代码实现1、创建实体类SysConfig2、创建返回数据的vo3、创建control…SpringBoot优点达项目实战获取系统配置接口二 文章目录 SpringBoot优点达项目实战获取系统配置接口二1、查看接口2、查看数据库3、代码实现1、创建实体类SysConfig2、创建返回数据的vo3、创建controller类4、实现Service层5、实现mapper层 4、测试结果 1、查看接口
GET /index/getConfig
请求参数
无返回结果
状态码状态码含义说明数据模型200OK成功Inline
返回数据结构
状态码 200
名称类型必选约束说明» errnointegertruenonenone» errmsgstringtruenonenone» dataobjecttruenonenone»» login_titlestringtruenone登录页标题»» login_bgstringtruenone登录页背景»» system_namestringtruenone系统名称»» system_logostringtruenone系统logo»» web_icostringtruenonefavicon
2、查看数据库 从数据库中可以看出请求项为管理系统配置
idgroup_valuetab_valueattr_keyattr_nameattr_valuedel_flagtypeconfig_valuevalidatorplaceholder77systemloginlogin_title登录页标题优化登录系统0978systemloginlogin_bg登录页背景static/admin/image/loginbg.png0980systembasesystem_name系统名称优化管理系统0981systembasesystem_logo系统logostatic/admin/image/logo.png0982systembaseweb_icofaviconstatic/admin/image/favicon.ico09
3、代码实现
1、创建实体类SysConfig
Data
public class SystemConfig {Schema(description 主键)TableId(value id,type IdType.AUTO)private Long id;Schema(description 配置名称)TableField(value group_value)private String groupValue;Schema(description 组件名称)TableField(value tab_value)private String tabValue;Schema(description 配置键)TableField(value attr_key)private String attrKey;Schema(description 配置名称)TableField(value attr_name)private String attrName;Schema(description 配置值)TableField(value attr_value)private String attrValue;TableLogicSchema(description 逻辑删除)TableField(value del_flag)JsonIgnoreprivate Integer delFlag;Schema(description 类型)TableField(value type)private Integer type;Schema(description 系统值)TableField(value config_value)private String configValue;Schema(description 验证规则)TableField(value validator)private String validator;Schema(description 提示文字)TableField(value placeholder)private String placeholder;Schema(description 是否能删除)TableField(value can_delete)private Integer canDelete;Schema(description 排序)TableField(value sort_num)private Integer sortNum;}2、创建返回数据的vo
因为前端请求并不需要那么多的数据,所以我们可以在web-admin的包下创建 Data
Schema(description 系统配置实体)
public class SystemConfigVo {Schema(description 登录页标题)private String loginTitle;Schema(description 登录页背景)private String loginBg;Schema(description 系统名称)private String systemName;Schema(description 系统logo)private String systemLogo;Schema(description favicon)private String webIco;
}3、创建controller类
Tag(name 基础配置)
RestController()
RequestMapping(/index)
Slf4j
public class BaseSystemConfigController {Autowiredprivate SystemConfigService systemConfigService;GetMapping(/getConfig)Operation(summary 获取系统配置)public ResultSystemConfigVo getConfig(){SystemConfigVo systemConfigVo systemConfigService.getConfig();return Result.ok(systemConfigVo);}
}包含的注解和类
Tag(name “基础配置”)这是 OpenAPISwagger的注解用于给 API 分组方便生成 API 文档时进行分类。这里的分组名称是 “基础配置”。RestController这是 Spring 的注解表示这个类是一个控制器并且它的每个方法的返回值会自动转换为 JSON 格式并写入 HTTP 响应中。RequestMapping(“/index”)这是 Spring 的注解用于定义请求的基本路径。这里定义了这个控制器的所有请求路径前缀为 /index。Slf4j这是 Lombok 的注解用于自动生成一个名为 log 的 Logger 对象方便在类中进行日志记录。Autowired这是 Spring 的注解用于自动注入依赖。这里注入了 SystemConfigService 服务类。GetMapping(“/getConfig”)这是 Spring 的注解用于将 HTTP GET 请求映射到 getConfig 方法。请求路径是 /index/getConfig。Operation(summary “获取系统配置”)这是 OpenAPISwagger的注解用于给 API 方法添加描述方便生成 API 文档时显示。这里的描述是 “获取系统配置”。
4、实现Service层 创建service接口 /*** 针对表sys_config的数据操作service*/
public interface SystemConfigService extends IServiceSystemConfig {/*** 获取系统配置信息* return*/SystemConfigVo getConfig();/*** 用户等登录* param systemUser* return*/String login(SystemUser systemUser);
}extends IServiceIService 是 MyBatis-Plus 提供的一个通用服务接口SystemConfigService 通过继承它获取了许多通用的 CRUD 操作方法。SystemConfig 是实体类表示 sys_config 表。 实现类 Service
Slf4j
public class SystemConfigServiceImpl extends ServiceImplSystemConfigMapper, SystemConfig
implements SystemConfigService {Autowiredprivate SystemConfigMapper systemConfigMapper;/*** 获取系统配置信息** return*/Overridepublic SystemConfigVo getConfig() {ListSystemConfig systemConfigList systemConfigMapper.getTabByVale(SystemConfigConstant.SYSTEM_CONFIG_SYSTEM);SystemConfigVo systemConfigVo new SystemConfigVo();// 定义一个映射将常量值映射到相应的设置方法MapString, BiConsumerSystemConfigVo, String configMap new HashMap();configMap.put(SystemConfigConstant.SYSTEM_CONFIG_TAB_LOGIN_TITLE, SystemConfigVo::setLoginTitle);configMap.put(SystemConfigConstant.SYSTEM_CONFIG_TAB_LOGIN_BG, SystemConfigVo::setLoginBg);configMap.put(SystemConfigConstant.SYSTEM_CONFIG_TAB_SYSTEM_NAME, SystemConfigVo::setSystemName);configMap.put(SystemConfigConstant.SYSTEM_CONFIG_TAB_SYSTEM_LOGO, SystemConfigVo::setSystemLogo);configMap.put(SystemConfigConstant.SYSTEM_CONFIG_TAB_WEB_ICO, SystemConfigVo::setWebIco);for (SystemConfig config : systemConfigList) {BiConsumerSystemConfigVo, String setter configMap.get(config.getAttrKey());if (setter ! null) {setter.accept(systemConfigVo, config.getAttrValue());}}return systemConfigVo;}
}类注解
Service标记该类是一个服务类Spring 会自动将其注册为 Spring Bean。Slf4j由 Lombok 提供自动生成一个 log 对象用于日志记录。
类声明
SystemConfigServiceImpl 类继承了 ServiceImplSystemConfigMapper, SystemConfig并实现了 SystemConfigService 接口。
依赖注入
Autowired注入 SystemConfigMapper用于与数据库交互
getConfig 方法
从数据库中获取系统配置列表。创建 SystemConfigVo 对象用于存储系统配置。定义一个映射将配置项的键映射到 SystemConfigVo 对象的相应设置方法。遍历配置列表根据键值对调用相应的设置方法将配置值注入 SystemConfigVo 对象。返回填充了系统配置信息的 SystemConfigVo 对象。
主要逻辑
获取系统配置列表调用 systemConfigMapper.getTabByVale(SystemConfigConstant.SYSTEM_CONFIG_SYSTEM) 获取系统配置列表。映射配置项使用 MapString, BiConsumerSystemConfigVo, String 将配置项的键映射到 SystemConfigVo 的设置方法。设置配置值遍历配置列表根据键值对调用相应的设置方法将配置值注入 SystemConfigVo 对象。返回配置对象返回包含所有系统配置信息的 SystemConfigVo 对象。
5、实现mapper层
Mapper
public interface SystemConfigMapper extends BaseMapperSystemConfig {Select(select * from sys_config where tab_value #{systemConfigSystem})ListSystemConfig getTabByVale(String systemConfigSystem);
}Mapper : MyBatis 这是一个 Mapper 接口Spring 会自动将其注册为一个 MyBatis Mapper。extends BaseMapper: 使得 SystemConfigMapper 继承了 MyBatis-Plus 提供的通用 Mapper 接口可以直接使用通用的 CRUD 方法。Select注解:定义了一个自定义的 SQL 查询语句用于从 sys_config 表中根据 tab_value 查询记录。getTabByVale 方法根据传入的 systemConfigSystem 参数查询 sys_config 表中的记录并返回一个 SystemConfig 对象的列表。
4、测试结果 访问knife4j进行接口测试