首页 > 其他分享 >五,搭建环境:辅助功能

五,搭建环境:辅助功能

时间:2024-08-09 10:20:21浏览次数:16  
标签:功能 辅助 String com LoginFailedException message cause public 搭建

五,搭建环境:辅助功能

@

目录


编写登录失败异常

我们在 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>

标签:功能,辅助,String,com,LoginFailedException,message,cause,public,搭建
From: https://www.cnblogs.com/TheMagicalRainbowSea/p/18350281

相关文章

  • 快速基于 ClickHouse + Grafana 搭建可观测性解决方案 - 分布式链路追踪篇(ClickHouse
    引言在ClickHouse,我们认为可观测性仅仅是另一个实时分析问题。作为一款高性能的实时分析数据库,ClickHouse被用于多种场景,包括时间序列数据的实时分析。其应用场景的多样性推动了大量分析函数的发展,这些函数有助于查询大多数数据类型。这些查询特性和高压缩率使得越来越多的用户......
  • Thinkphp框架盲盒app源码搭建+付费进群源码交友合体设计开发
    本文将详细介绍盲盒App的源码设计与搭建过程,涵盖从需求分析、技术选型、环境准备到开发、测试、上线的全流程。源码:m.ymzan.top一、需求分析在搭建盲盒App之前,首先需要明确应用的核心需求。盲盒App的核心功能通常包括用户管理、商品管理、订单处理、支付系......
  • 一个升级的多租户权限管理系统,组件化,模块化,轻耦合,高扩展企业级的应用框架,功能强大(
    前言在现代软件开发中,多租户权限管理系统是企业级应用中的一个关键组件。然而,现有的一些框架,如RuoYi,虽然提供了一些基本的功能,但在面对更复杂的企业级需求时,如原生的MyBatis使用、复杂的分页处理,以及一些高级功能支持上,仍然存在一些不足和痛点。为了解决这些问题,并提供一个更......
  • typeScript学习之环境搭建
    ^_^--今天来介绍一下运行typeScript代码需要的环境------->    下面是需要安装的软件和环境以及安装过程中遇到的问题,win10、win11系统下载最新或者稳定版的软件就可以,因为我使用的是win7系统,很多软件不支持或对win7系统的版本不再维护,尝试了很多次找到合适的对应版本一......
  • AppleScript实现FaceTime数据检测,FaceTime蓝号检测,无痕检测是否开通FaceTime功能
    FaceTime是苹果公司iOS和macOS(以前称MacOSX或OSX)内置的一款视频通话软件,通过Wi-Fi或者蜂窝数据接入互联网,在两个装有FaceTime的设备之间实现视频通话。其要求通话双方均具有装有FaceTime的苹果设备,苹果ID以及可接入互联网的3G/4G/5G或者Wi-Fi网络。 一、Windows电脑上部署苹......
  • 搭建时空基底,建设“数字之城”
    在这个日新月异的时代,数字技术正以前所未有的速度重塑我们的世界。今天,让我们一同深入探讨如何通过搭建时空基底,为“数字之城”的建设奠定坚实基础。一、时空基底:数字之城的骨骼与脉络所谓“时空基底”,是指结合时间维度与空间维度的综合性信息框架,它是构建数字城......
  • StringBuffer的功能,添加、删除、替换、反转(字符串逆序)功能 day11
    packagecom.shujia.day11;/*StringBuffer的功能:添加功能publicStringBufferappend(Stringstr)在末尾处添加字符,返回自身publicStringBufferinsert(intoffset,Stringstr)指定位置添加字符串,返回自身......
  • String类的其他功能,替换、去除空格、比较字符串相等 day11
    packagecom.shujia.day11;/*String类的其他功能:替换功能Stringreplace(charold,charnew)将字符串中所有的旧字符使用新字符进行替换,返回新的字符串Stringreplace(Stringold,Stringnew)将字符串中所有的旧字符串使用新......
  • String类的转换功能方法day11
    packagecom.shujia.day11;/*String类的转换功能:byte[]getBytes()将字符串转成一个字节数组char[]toCharArray()将字符串转成一个字符数组staticStringvalueOf(char[]chs)直接使用String类名的方式......
  • String类的获取功能方法 day11
    packagecom.shujia.day11;/*String类的获取功能intlength()获取字符串中的字符个数charcharAt(intindex)根据索引获取对应的字符intindexOf(intch)......