五,搭建環境:輔助功能
@
目錄
- 五,搭建環境:輔助功能
- 編寫登入失敗異常
- 編寫常量類
- 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部落格
對應順序是下一節內容:✏️✏️✏️