欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?EE實(shí)現(xiàn)用戶后臺(tái)管理系統(tǒng)

 更新時(shí)間:2022年05月27日 08:35:11   作者:South.return  
這篇文章主要為大家詳細(xì)介紹了Java?EE實(shí)現(xiàn)用戶后臺(tái)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Java EE實(shí)現(xiàn)用戶后臺(tái)管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

主要功能

管理員登錄功能、管理員列表操作、用戶列表操作、訂單管理

登錄功能

設(shè)計(jì)思路:前端頁面獲取輸入的數(shù)據(jù),然后發(fā)送Ajax請求,在servlet中獲取數(shù)據(jù)并調(diào)用service層中的方法進(jìn)行處理,service層中調(diào)用dao層的實(shí)現(xiàn)方法,最終servlet返回一個(gè)結(jié)果集,判斷登錄是否成功。

login.html主要功能代碼:

<script>
? ? $(function () {
? ? ? ? $("#btn_login").click(function () {
? ? ? ? ? ? //獲取數(shù)據(jù)
? ? ? ? ? ? let username = $("#username").val();
? ? ? ? ? ? let password = $("#password").val();
? ? ? ? ? ? //數(shù)據(jù)處理
? ? ? ? ? ? $.post("admin/login", {username: username, password: password}, function (result) {
? ? ? ? ? ? ? ? if (result.flag) {
? ? ? ? ? ? ? ? ? ? location.href = "index.html";
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? alert(result.errorMsg);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? });
? ? ? ? });
? ? })
</script>

servlet中功能代碼:

//登錄
public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
? ? ? ? //獲取用戶名和密碼
? ? ? ? String username = request.getParameter("username");
? ? ? ? String password = request.getParameter("password");
?
? ? ? ? //封裝管理員對象
? ? ? ? Administrator admin = new Administrator();
? ? ? ? admin.setAname(username);
? ? ? ? admin.setPassword(password);
?
? ? ? ? //創(chuàng)建結(jié)果對象
? ? ? ? ResultInfo resultInfo = new ResultInfo();
? ? ? ? //調(diào)用service查詢
? ? ? ? Administrator administrator = service.login(admin);
? ? ? ? if (administrator == null) {
? ? ? ? ? ? resultInfo.setFlag(false);
? ? ? ? ? ? resultInfo.setErrorMsg("用戶名或密碼錯(cuò)誤!");
? ? ? ? }
? ? ? ? if (administrator != null && !administrator.getStatus().equals("Y")) {
? ? ? ? ? ? resultInfo.setFlag(false);
? ? ? ? ? ? resultInfo.setErrorMsg("該賬戶未激活!");
? ? ? ? }
? ? ? ? if (administrator != null && administrator.getStatus().equals("Y")) {
? ? ? ? ? ? resultInfo.setFlag(true);
? ? ? ? ? ? //設(shè)置session
? ? ? ? ? ? request.getSession().setAttribute("username", administrator.getAname());
? ? ? ? }
?
? ? ? ? //調(diào)用父類中定義的方法,轉(zhuǎn)json數(shù)據(jù)后回傳
? ? ? ? writeValue(resultInfo, response);
? ? }

service層中代碼實(shí)現(xiàn):

@Override
public Administrator login(Administrator administrator) {
? ? ? ? return dao.login(administrator);
? ? }

dao層中代碼實(shí)現(xiàn):

@Override
public Administrator login(Administrator administrator) {
? ? ? ? Administrator admin = null;
? ? ? ? try {
? ? ? ? ? ? String sql = "SELECT * FROM administrator WHERE aname = ? AND PASSWORD = ?";
? ? ? ? ? ? admin = template.queryForObject(sql, new BeanPropertyRowMapper<>(Administrator.class), administrator.getAname(), administrator.getPassword());
? ? ? ? } catch (Exception e) {
?
? ? ? ? }
? ? ? ? return admin;
? ? }

實(shí)現(xiàn)效果:

管理員列表

設(shè)計(jì)思路:數(shù)據(jù)操作與登錄功能大同小異,實(shí)現(xiàn)了管理員的增刪改查,在此重點(diǎn)介紹分頁、模糊查詢。

admin_list.html主要功能代碼:

<script>
? ? ? ? $(function () {
? ? ? ? ? ? let name = null;
? ? ? ? ? ? $("#btn_search").click(function () {
? ? ? ? ? ? ? ? name = $('#admin_name').val();
? ? ? ? ? ? ? ? load(null, name)
? ? ? ? ? ? ? ? //取消按鈕的默認(rèn)跳轉(zhuǎn)行為 導(dǎo)致會(huì)刷新頁面
? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? })
? ? ? ? ? ? load(null, name);
? ? ? ? });
? ? ? ??
? ? ? ? function load(currentPage, admin_name) {
? ? ? ? ? ? //發(fā)送ajax請求,請求route/pageQuery,傳遞cid
? ? ? ? ? ? $.get("admin/pageQuery", {currentPage: currentPage, admin_name: admin_name}, function (pb) {
? ? ? ? ? ? ? ? //定義字符
? ? ? ? ? ? ? ? let lis = "";
?
? ? ? ? ? ? ? ? //計(jì)算上一頁的頁碼
? ? ? ? ? ? ? ? let beforeNum = pb.currentPage - 1;
? ? ? ? ? ? ? ? if (beforeNum <= 0) {
? ? ? ? ? ? ? ? ? ? beforeNum = 1;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? let beforePage = '<a class="prev" href="javascript:load(' + beforeNum + ',\'' + admin_name + '\')">&lt;&lt;</a>';
? ? ? ? ? ? ? ? lis += beforePage;
?
? ? ? ? ? ? ? ? //定義開始位置begin,結(jié)束位置end
? ? ? ? ? ? ? ? let begin;
? ? ? ? ? ? ? ? let end;
?
? ? ? ? ? ? ? ? if (pb.totalPage < 10) {
? ? ? ? ? ? ? ? ? ? //總頁碼不足10頁
? ? ? ? ? ? ? ? ? ? begin = 1;
? ? ? ? ? ? ? ? ? ? end = pb.totalPage;
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? //總頁碼超過10頁
? ? ? ? ? ? ? ? ? ? begin = pb.currentPage - 5;
? ? ? ? ? ? ? ? ? ? end = pb.currentPage + 4;
?
? ? ? ? ? ? ? ? ? ? //前邊不足5個(gè),后邊補(bǔ)齊
? ? ? ? ? ? ? ? ? ? if (begin < 1) {
? ? ? ? ? ? ? ? ? ? ? ? begin = 1;
? ? ? ? ? ? ? ? ? ? ? ? end = begin + 9;
? ? ? ? ? ? ? ? ? ? }
?
? ? ? ? ? ? ? ? ? ? if (end > pb.totalPage) {
? ? ? ? ? ? ? ? ? ? ? ? end = pb.totalPage;
? ? ? ? ? ? ? ? ? ? ? ? begin = end - 9;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
?
? ? ? ? ? ? ? ? //展示分頁頁碼
? ? ? ? ? ? ? ? for (let i = begin; i <= end; i++) {
? ? ? ? ? ? ? ? ? ? let li;
? ? ? ? ? ? ? ? ? ? //判斷當(dāng)前頁碼是否等于i,創(chuàng)建頁碼的li
? ? ? ? ? ? ? ? ? ? if (pb.currentPage === i) {
? ? ? ? ? ? ? ? ? ? ? ? li = '<a class="num" href="javascript:load(' + i + ',\'' + admin_name + '\')"><span class="current">' + i + '</span></a>';
? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? li = '<a class="num" href="javascript:load(' + i + ',\'' + admin_name + '\')">' + i + '</a>';
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? //拼接字符串
? ? ? ? ? ? ? ? ? ? lis += li;
? ? ? ? ? ? ? ? }
?
? ? ? ? ? ? ? ? //計(jì)算下一頁的頁碼
? ? ? ? ? ? ? ? let nextNum = pb.currentPage + 1;
? ? ? ? ? ? ? ? if (nextNum >= pb.totalPage) {
? ? ? ? ? ? ? ? ? ? nextNum = pb.totalPage;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? let nextPage = '<a class="next" href="javascript:load(' + nextNum + ',\'' + admin_name + '\')">&gt;&gt;</a>';
? ? ? ? ? ? ? ? lis += nextPage;
?
? ? ? ? ? ? ? ? //將lis內(nèi)容設(shè)置到ul
? ? ? ? ? ? ? ? $("#pageNum").html(lis);
?
? ? ? ? ? ? ? ? //列表數(shù)據(jù)展示
? ? ? ? ? ? ? ? let admin_lis = "";
? ? ? ? ? ? ? ? for (let i = 0; i < pb.list.length; i++) {
? ? ? ? ? ? ? ? ? ? let admin = pb.list[i];
?
? ? ? ? ? ? ? ? ? ? let li;
? ? ? ? ? ? ? ? ? ? if (admin.status === "Y") {
? ? ? ? ? ? ? ? ? ? ? ? li = '<tr>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<input type="checkbox" name="checkedId" id="checkedId" lay-skin="primary">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<div class="layui-unselect layui-form-checkbox" lay-skin="primary"><i class="layui-icon layui-icon-ok"></i></div>' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.aid + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.aname + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.phone + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.email + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.role + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.date + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td class="td-status">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<span class="layui-btn layui-btn-normal layui-btn-mini" style="background-color: #1E9FFF">已啟用</span></td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td class="td-manage">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<a onclick="member_stop(this,' + admin.aid + ')" href="javascript:;" title="啟用">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ? ? ?<i class="layui-icon">&#xe601;</i>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?</a>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<a title="編輯" onclick="xadmin.open(\'編輯管理員\',\'admin-edit.html?aid=' + admin.aid + '\',600,500)" href="javascript:;">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ? ? ?<i class="layui-icon">&#xe642;</i>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?</a>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<a title="刪除" onclick="member_del(this,\'要?jiǎng)h除的id\')" href="javascript:;">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ? ? ?<i class="layui-icon">&#xe640;</i>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?</a>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? '</tr>';
? ? ? ? ? ? ? ? ? ? } else if (admin.status === "N") {
? ? ? ? ? ? ? ? ? ? ? ? li = '<tr>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<input type="checkbox" name="checkedId" id="checkedId" lay-skin="primary">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<div class="layui-unselect layui-form-checkbox" lay-skin="primary"><i class="layui-icon layui-icon-ok"></i></div>' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.aid + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.aname + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.phone + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.email + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.role + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td>' + admin.date + '</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td class="td-status">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<span class="layui-btn layui-btn-normal layui-btn-mini" style="background-color: gray">已停用</span></td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?<td class="td-manage">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<a onclick="member_stop(this,' + admin.aid + ')" href="javascript:;" title="停用">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ? ? ?<i class="layui-icon">&#xe62f;</i>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?</a>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<a title="編輯" onclick="xadmin.open(\'編輯管理員\',\'admin-edit.html?aid=' + admin.aid + '\',600,500)" href="javascript:;">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ? ? ?<i class="layui-icon">&#xe642;</i>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?</a>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?<a title="刪除" onclick="member_del(this,\'要?jiǎng)h除的id\')" href="javascript:;">\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ? ? ?<i class="layui-icon">&#xe640;</i>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ? ? ?</a>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ' ? ?</td>\n' +
? ? ? ? ? ? ? ? ? ? ? ? ? ? '</tr>';
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? admin_lis += li;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? //設(shè)置列表數(shù)據(jù)
? ? ? ? ? ? ? ? $("#admin_msg").html(admin_lis);
? ? ? ? ? ? });
? ? ? ? }
</script>

servlet中功能代碼:

//分頁、模糊查詢
public void pageQuery(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
? ? ? ? //接收參數(shù)
? ? ? ? String currentPageStr = request.getParameter("currentPage");
? ? ? ? //接收admin_name管理員名稱
? ? ? ? String admin_name = request.getParameter("admin_name");
? ? ? ? //判斷admin_name是否為null
? ? ? ? if (admin_name != null && !"null".equals(admin_name) && admin_name.length() > 0) {
? ? ? ? ? ? admin_name = new String(admin_name.getBytes("iso-8859-1"), "utf-8");
? ? ? ? } else {
? ? ? ? ? ? admin_name = "";
? ? ? ? }
?
? ? ? ? int currentPage = 0; //當(dāng)前頁碼,不傳遞參數(shù),默認(rèn)為1
? ? ? ? if (currentPageStr != null && currentPageStr.length() > 0) {
? ? ? ? ? ? currentPage = Integer.parseInt(currentPageStr);
? ? ? ? } else {
? ? ? ? ? ? currentPage = 1;
? ? ? ? }
?
? ? ? ? //每頁顯示條數(shù),默認(rèn)為5
? ? ? ? int pageSize = 5;
?
? ? ? ? //調(diào)用service查詢PageBean對象
? ? ? ? PageBean<Administrator> pb = service.pageQuery(currentPage, pageSize, admin_name);
?
? ? ? ? //將pageBean對象序列化為json,返回
? ? ? ? writeValue(pb, response);
? ? }

service層中代碼實(shí)現(xiàn):

@Override
public PageBean<Administrator> pageQuery(int currentPage, int pageSize, String admin_name) {
? ? ? ? //封裝PageBean
? ? ? ? PageBean<Administrator> pb = new PageBean<>();
? ? ? ? //設(shè)置當(dāng)前頁碼
? ? ? ? pb.setCurrentPage(currentPage);
? ? ? ? //設(shè)置每頁顯示條數(shù)
? ? ? ? pb.setPageSize(pageSize);
?
? ? ? ? //設(shè)置總記錄數(shù)
? ? ? ? int totalCount = dao.findTotalCount(admin_name);
?
? ? ? ? pb.setTotalCount(totalCount);
? ? ? ? //設(shè)置當(dāng)前頁顯示的數(shù)據(jù)集合
? ? ? ? int start = (currentPage - 1) * pageSize; //開始的記錄數(shù)
? ? ? ? List<Administrator> list = dao.findByPage(start, pageSize, admin_name);
? ? ? ? pb.setList(list);
?
? ? ? ? //設(shè)置總頁數(shù) ?= 總記錄數(shù)/每頁顯示條數(shù)
? ? ? ? int totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : (totalCount / pageSize) + 1;
? ? ? ? pb.setTotalPage(totalPage);
?
? ? ? ? return pb;
? ? }

dao層中代碼實(shí)現(xiàn):

@Override
public int findTotalCount(String admin_name) {
? ? ? ? //定義sql模板
? ? ? ? String sql = "SELECT COUNT(*) FROM administrator WHERE 1=1 ";
? ? ? ? StringBuilder sb = new StringBuilder(sql);
? ? ? ? //條件
? ? ? ? List<Object> params = new ArrayList<>();
? ? ? ? if (admin_name != null && admin_name.length() > 0) {
? ? ? ? ? ? sb.append(" and aname like ? ");
? ? ? ? ? ? params.add("%" + admin_name + "%");
? ? ? ? }
? ? ? ? sql = sb.toString();
? ? ? ? return template.queryForObject(sql, Integer.class, params.toArray());
? ? }
?
? ? @Override
? ? public List<Administrator> findByPage(int start, int pageSize, String admin_name) {
? ? ? ? String sql = "SELECT * FROM administrator WHERE 1=1 ";
? ? ? ? StringBuilder sb = new StringBuilder(sql);
? ? ? ? //條件
? ? ? ? List<Object> params = new ArrayList<>();
? ? ? ? //判斷參數(shù)是否有值
? ? ? ? if (admin_name != null && admin_name.length() > 0) {
? ? ? ? ? ? sb.append(" and aname like ? ");
? ? ? ? ? ? params.add("%" + admin_name + "%");
? ? ? ? }
? ? ? ? //分頁條件
? ? ? ? sb.append(" limit ?,? ");
? ? ? ? params.add(start);
? ? ? ? params.add(pageSize);
? ? ? ? //轉(zhuǎn)字符串
? ? ? ? sql = sb.toString();
? ? ? ? return template.query(sql, new BeanPropertyRowMapper<>(Administrator.class), params.toArray());
? ? }

實(shí)現(xiàn)效果:

用戶列表

設(shè)計(jì)思路:與管理員列表設(shè)計(jì)思路基本類似。

實(shí)現(xiàn)效果:

訂單管理

設(shè)計(jì)思路:與管理員列表設(shè)計(jì)思路基本類似。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一個(gè)簡單的java學(xué)生寢室查詢系統(tǒng)

    一個(gè)簡單的java學(xué)生寢室查詢系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了一個(gè)簡單的java學(xué)生寢室查詢系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • spring基礎(chǔ)系列之JavaConfig配置詳解

    spring基礎(chǔ)系列之JavaConfig配置詳解

    本篇文章主要介紹了spring基礎(chǔ)系列之JavaConfig配置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Springboot手動(dòng)連接庫并獲取指定表結(jié)構(gòu)的示例代碼

    Springboot手動(dòng)連接庫并獲取指定表結(jié)構(gòu)的示例代碼

    這篇文章主要介紹了Springboot手動(dòng)連接庫并獲取指定表結(jié)構(gòu)的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Java中方法的使用、重載與遞歸的詳細(xì)介紹

    Java中方法的使用、重載與遞歸的詳細(xì)介紹

    前面我們提到了方法需要參數(shù)類型,但是如果我們需要用一個(gè)函數(shù)同時(shí)兼容多種參數(shù)的情況應(yīng)該怎么辦呢? 這里就可以使用到方法重載,對Java中方法的使用、重載與遞歸相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-11-11
  • Java中通過三級(jí)緩存解決Spring循環(huán)依賴詳解

    Java中通過三級(jí)緩存解決Spring循環(huán)依賴詳解

    這篇文章主要介紹了Java中通過三級(jí)緩存解決Spring循環(huán)依賴詳解,當(dāng)出現(xiàn)兩個(gè)或多個(gè) Bean 在初始化時(shí)相互依賴的情況時(shí),Spring Boot 會(huì)將其中一個(gè) Bean 提前暴露出來,以便其他 Bean 能夠在初始化時(shí)正確地引用它,這一策略能有效避免循環(huán)依賴導(dǎo)致的問題,需要的朋友可以參考下
    2023-09-09
  • Java 垃圾回收機(jī)制詳解及實(shí)例代碼

    Java 垃圾回收機(jī)制詳解及實(shí)例代碼

    這篇文章主要介紹了 Java 垃圾回收機(jī)制詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 詳解Java中Object?類的使用

    詳解Java中Object?類的使用

    Java的Object?類是所有類的父類,也就是說?Java?的所有類都繼承了?Object,本文主要來和大家講講Object?類的使用,感興趣的可以了解一下
    2023-05-05
  • 基于Java實(shí)現(xiàn)XML文件的解析與更新

    基于Java實(shí)現(xiàn)XML文件的解析與更新

    配置文件可以有很多種格式,包括?INI、JSON、YAML?和?XML。每一種編程語言解析這些格式的方式都不同。本文將通過Java語言實(shí)現(xiàn)XML文件的解析與更新,需要的可以參考一下
    2022-03-03
  • SpringBoot?+?Redis如何解決重復(fù)提交問題(冪等)

    SpringBoot?+?Redis如何解決重復(fù)提交問題(冪等)

    在開發(fā)中,一個(gè)對外暴露的接口可能會(huì)面臨瞬間的大量重復(fù)請求,本文就介紹了SpringBoot + Redis如何解決重復(fù)提交問題,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • java中stream去重的幾種方式舉例

    java中stream去重的幾種方式舉例

    Stream流是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列,這篇文章主要給大家介紹了關(guān)于java中stream去重的幾種方式,需要的朋友可以參考下
    2023-07-07

最新評論