五,搭建环境:辅助功能

news2024/11/13 18:00:33

五,搭建环境:辅助功能

文章目录

  • 五,搭建环境:辅助功能
  • 编写登录失败异常
  • 编写常量类
  • MD5 工具 (加密工具类)
  • 日志配置文件


编写登录失败异常

我们在 demo-module04-util 模块下,创建一个名为:com.rainbowsea.imperial.court.exception的包下,创建一个名为:LoginFailedException 的异常类——> 作为登录异常的处理。

在这里插入图片描述

package com.rainbowsea.imperial.court.exception;

public class LoginFailedException  extends RuntimeException {

    public LoginFailedException() {
    }

    public LoginFailedException(String message) {
        super(message);
    }

    public LoginFailedException(String message, Throwable cause) {
        super(message, cause);
    }

    public LoginFailedException(Throwable cause) {
        super(cause);
    }

    public LoginFailedException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
}

编写常量类

我们在 demo-module04-util 模块下,创建一个名为:com.rainbowsea.imperial.court.utils的包下,创建一个名为:ImperialCourtConst类——> 作为常量类,定义我们项目中所需要的一些常量信息。

在这里插入图片描述

package com.rainbowsea.imperial.court.utils;

public class ImperialCourtConst {

    public static final String LOGIN_FAILED_MESSAGE = "账号、密码错误,不可进宫!";
    public static final String ACCESS_DENIED_MESSAGE = "宫闱禁地,不得擅入!";
    public static final String LOGIN_EMP_ATTR_NAME = "loginInfo";
}

MD5 工具 (加密工具类)

我们在 demo-module04-util 模块下,创建一个名为:com.rainbowsea.imperial.court.utils的包下,创建一个名为:MD5Util类——> 作为工具类,定义我们项目中所需要的一些工具方法。

在这里插入图片描述

package com.rainbowsea.imperial.court.utils;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
    /**
     * 针对明文字符串执行MD5加密
     *
     * @param source
     * @return
     */
    public static String encode(String source) {

        // 1.判断明文字符串是否有效
        if (source == null || "".equals(source)) {
            throw new RuntimeException("用于加密的明文不可为空");
        }

        // 2.声明算法名称
        String algorithm = "md5";

        // 3.获取MessageDigest对象
        MessageDigest messageDigest = null;
        try {
            messageDigest = MessageDigest.getInstance(algorithm);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        // 4.获取明文字符串对应的字节数组
        byte[] input = source.getBytes();

        // 5.执行加密
        byte[] output = messageDigest.digest(input);

        // 6.创建BigInteger对象
        int signum = 1;
        BigInteger bigInteger = new BigInteger(signum, output);

        // 7.按照16进制将bigInteger的值转换为字符串
        int radix = 16;
        String encoded = bigInteger.toString(radix).toUpperCase();

        return encoded;
    }
}

日志配置文件

在该 demo-module01-web 模块下的src/main/resources根路径下,创建一个名为logback.xml 的日志配置文件。注意:文件名就是为logback.xml不可以是其他的,必须是这个

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <!-- 指定日志输出的位置 -->
    <appender name="STDOUT"
              class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 日志输出的格式 -->
            <!-- 按照顺序分别是:时间、日志级别、线程名称、打印日志的类、日志主体内容、换行 -->
            <pattern>[%d{HH:mm:ss.SSS}] [%-5level] [%thread] [%logger] [%msg]%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 设置全局日志级别。日志级别按顺序分别是:DEBUG、INFO、WARN、ERROR -->
    <!-- 指定任何一个日志级别都只打印当前级别和后面级别的日志。 -->
    <root level="INFO">
        <!-- 指定打印日志的appender,这里通过“STDOUT”引用了前面配置的appender -->
        <appender-ref ref="STDOUT" />
    </root>

    <!-- 专门给某一个包指定日志级别 -->
    <logger name="com.atguigu" level="DEBUG" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>

</configuration>
  • 对应顺序上一节内容:✏️✏️✏️ 四,搭建环境:表述层-CSDN博客

  • 对应顺序是下一节内容:✏️✏️✏️ 六,业务功能:登录-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1995237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10、MySQL-索引

目录 1、索引概述 2、索引结构 2.1 BTree 2.2 BTree 2.3 Hash 3、索引分类 4、索引语法 4.1 创建索引 4.2 查看索引 4.3 删除索引 5、SQL性能分析 5.1 SQL执行频率 5.2 慢查询日志 5.3 profile详情 5.4 explain执行计划 6、索引使用 6.1 验证索引效率 6.2 最左…

浪潮云服务器(Inspur)硬件监控指标解读

随着企业业务的快速发展&#xff0c;服务器的稳定运行变得愈发重要。浪潮云服务器以其高性能和稳定性&#xff0c;在数据中心中扮演着关键角色。为了确保服务器的稳定运行&#xff0c;监控易作为一款专业的IT基础设施监控软件&#xff0c;为浪潮云服务器提供了全面的硬件监控解…

Swift 中的函数式核心与命令式外壳:单向数据流

文章目录 前言函数式核心命令式外壳副作用可运行 Demo函数式核心部分命令式外壳部分副作用处理SwiftUI 界面代码运行截图代码解释 总结参考资料 前言 之前&#xff0c;我们讨论了在 Swift 中的函数式核心与命令式外壳的概念。其目标是通过值类型提取纯逻辑&#xff0c;并将副作…

Java智能之Spring AI:5分钟打造智能聊天模型的利器

前言 尽管Python最近成为了编程语言的首选&#xff0c;但是Java在人工智能领域的地位同样不可撼动&#xff0c;得益于强大的Spring框架。随着人工智能技术的快速发展&#xff0c;我们正处于一个创新不断涌现的时代。从智能语音助手到复杂的自然语言处理系统&#xff0c;人工智能…

【卫星遥感影像】国产遥感影像分类技术应用研究进展综述_论文推荐

影像分类是遥感影像信息提取中的基本问题之一和遥感影像应用的关键&#xff0c;为我国掌握本土信息资源自主权、满足国家的紧迫需求具有重大战略意义。本文将进行这篇遥感影像分类的论文推荐。 1. 论文引用 [1]胡杰,张莹,谢仕义.国产遥感影像分类技术应用研究进展综述[J].计算…

使用隔离式栅极驱动器的设计指南

本设计指南分为三部分&#xff0c;旨在讲解如何为电力电子应用中的功率开关器件选用合适的隔离栅极驱动器&#xff0c;并分享实战经验。本文为第一部分&#xff0c;主要包括隔离式栅极驱动器的介绍和选型指南。 本文引用地址&#xff1a; 安森美的隔离栅极驱动器专为满足 SiC…

阿里云CDN-边缘脚本EdgeScript的CI/CD实践

阿里云CDN-ES脚本CI/CD实践 背景环境项目代码结构及发布脚本代码1. 项目结构2. 发布工具代码 流水线配置1. 流程配置2. 脚本代码发布脚本说明0. 配置账户1. 清空测试环境&#xff08;回滚测试环境&#xff09;2. 执行脚本发布3. 发布&#xff08;测试环境推送到生产环境&#x…

java基础概念13-类和对象

一、面向对象OOP 类class&#xff1a;相同事物的共性的代码描述&#xff0c;所有类是引用数据类型。 对象&#xff08;实例&#xff09;instance&#xff1a;类的具体的一个个体的实物。 二、类的定义 在Java中&#xff0c;一个类&#xff08;Class&#xff09;是定义对象的…

【经验总结】ShardingSphere+Springboot-02 数据分片、标准分片算法、时间间隔分片算法

文章目录 三、分片算法配置3.1 数据分片3.1.2 垂直分片3.1.2 水平分片 3.2 &#xff08;标准&#xff09;分片算法3.2.1 INLINE 基于行表达式的分片算法 &#xff08;必须掌握&#xff09;关于是否开启范围查找 3.2.2 INTERVAL 时间范围分片算法 三、分片算法配置 3.1 数据分片…

vue2学习 -- 路由

文章目录 1. 相关理解2. 基本使用2.1 安装2.2 嵌套路由2.3 路由传参2.3.1 query2.3.2 路由的命名2.3.3 params 2.4 路由的props配置2.5 routerlink的replace属性 3. 编程式路由导航4. 缓存路由组件5. 两个新的生命周期钩子6. 路由守卫6.1 全局前置 / 后置路由守卫6.2 独享路由守…

Java面试题--JVM大厂篇之Java中Parallel GC的调优技巧与最佳实践

目录 引言&#xff1a; 正文&#xff1a; 1. 理解Parallel GC的工作原理 2. 常见痛点与解决方案 痛点一&#xff1a;长时间暂停 痛点二&#xff1a;频繁的Minor GC 痛点三&#xff1a;内存溢出 3. 调优参数推荐 4. 实战经验分享 结束语&#xff1a; 引言&#xff1a;…

海思AE模块Lines_per_500ms参数的意义

​ 基础知识 1秒(S)1000毫秒(ms)1000_000微妙(s)1000_000_000纳秒(ns) 1GHz1000Mhz1000_000KHz1000_000_000Hz 1Hz1/s 抗频闪原理 海思AE模块参数中有一个LinesPer500ms的参数&#xff0c;意思为500ms对应的曝光行数。此个参数和抗频闪有关。 我们知道&#xff1a; 50HZ…

SQL注入实例(sqli-labs/less-17)

0、初始网页 1、确定闭合字符 注入点在于password框&#xff0c;闭合字符为单引号 2、爆库名 1 and updatexml(1,concat(0x7e,database(),0x7e),1)# 1 and (select 1 from (select count(*),concat((select database()),floor(rand()*2))x from information_schema.tables gr…

【C语言】通讯录的实现(基本版和动态版)

&#x1f984;个人主页:小米里的大麦-CSDN博客 &#x1f38f;所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html &#x1f381;代码托管:C语言: C语言方向&#xff08;基础知识和应用&#xff09; (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、…

教育法、义务教育法、教师法、未成年人保护法、预防未成年人犯罪法、学生伤害事故处理办法

《中华人民共和国教育法》 《中华人民共和国义务教育法》 《中华人民共和国教师法》 《中华人民共和国未成年人保护法》 《中华人民共和国预防未成年人犯罪法》 《学生伤害事故处理办法》

C++:string

1.STL简介 STL&#xff08;standard template library标准模版库&#xff09;&#xff0c;是c标准库的重要组成部分&#xff0c;是一个包罗数据结构与算法的软件框架。 STL有很多版本&#xff0c;我们学习STL要阅读部分源代码&#xff0c;主要参考SGI版本。 STL的六大组件&a…

Volana:一款基于Go开发的Shell命令代码混淆工具

关于Volana Volana是一款功能强大的Shell命令代码混淆工具&#xff0c;该工具基于Go语言开发&#xff0c;可以帮助广大研究人员实现对Shell命令或脚本代码的混淆处理。 在红队测试过程中&#xff0c;隐蔽性是非常重要的一个方面&#xff0c;许多基础设施会记录命令并实时将其发…

Java 中的泛型 集合(List,Set) Map

泛型的本质是参数化类型,即允许在编译时对集合进行类型检查,从而避免安全问题,提高代码的复用性 泛型的具体定义与作用 定义:泛型是一种在编译阶段进行类型检查的机制,它允许在类,方法,接口后通过<> 来声明类型参数.这些参数在编译时会被具体的类型替换.java在运行时,会通…

Java生成Word->PDF->图片:基于poi-tl 进行word模板渲染

文章目录 引言I Java生成Word、PDF、图片文档获取标签渲染数据生成文档案例II 工具类封装2.1 word 渲染和word 转 pfd2.2 pdf转成一张图片III poi-tl(word模板渲染) 标签简介文本标签{{var}}图片标签表格标签引用标签IV poi-tl提供了类 Configure 来配置常用的设置标签类型前后…

dwg图纸识别,提取建筑外轮廓坐标数据

1.业务流程说明 目的是通过dwg图纸&#xff0c;在网页端绘制出一个包括建筑外轮了的白模。为了达到这个目的&#xff0c;我们需要dwg图纸识别&#xff0c;提取到图纸中的建筑外轮廓的坐标数据。 2. 实施步骤 1.1 根据dwg图纸&#xff0c;转换成dxf文件&#xff0c;通过对dxf文…