选课中心
已经选条件:
学习方向:
Java基础课程
主讲:Tom
讲解方式 知识点介绍、代码演示、逻辑分析、灵活举例、详细演示代码的流程和细节。全面讲解并突出重点,让学习也变成一种快乐。 课程亮点 1,知识讲解详细,各阶段学习者都能学有所获。 2,使用图形的方式演示代码、分析逻辑,用直观的方式让复杂的知识学习起来变的轻松。 3,课程中穿插大量的趣味性练习题目,充分巩固各个知识点的应用。 4,使用综合案例来加强重点知识,用切实的应用场景提升编程能力。 适用人群 1、希望未来毕业从事Java开发的在校生及应届毕业生。 2、有一定编程基础,希望全面学习Java编程,巩固JavaSE知识的计算机相关从业者。 3、对编程感兴趣,希望从事IT高薪职业,有追求的广大有志人士。
Java提高
主讲:Tom
Java提高课程
Redis 框架
主讲:Tom
Redis 框架
Maven框架
主讲:Tom
基于SSM企业级架构电商平台项目
主讲:Tom
基于SSM(Spring 5.0.2 + SpringMVC + MyBatis 3.4.5)框架开发的B2C电商平台,具备完整的电商业务流程。 功能上包含前台用户界面(商品浏览、详情查看、购物车、订单管理、用户注册登录)和后台管理系统(商品管理、订单管理、用户管理、分类管理),支持商品SKU(颜色、尺寸)管理。 技术架构采用分层设计(Controller、Service、Dao、Entity、Mapper),使用MySQL数据库,前端基于JSP+Bootstrap+jQuery实现,支持动态数据源切换,通过Maven进行项目管理
SSM框架管理系统项目
主讲:Tom
采用经典的SSM(Spring + SpringMVC + MyBatis)框架,实现了完整的MVC架构设计,各层职责明确,耦合度低,便于维护和扩展。 项目涵盖了SSM框架整合、SpringMVC请求处理、MyBatis数据访问、Spring事务管理、AOP应用、文件上传、分页查询等多个核心技术点,是学习Java Web开发的优秀案例 1. 核心技术点 技术点 学习价值 SSM框架整合 掌握企业级框架的整合方法 MVC架构设计 理解Web应用的设计模式 数据库设计 掌握数据库表结构设计方法 分页查询实现 学习大数据量处理技巧 文件上传功能 掌握文件处理技术 软删除机制 学习数据安全处理方法 AOP应用 理解面向切面编程思想 事务管理 掌握数据库事务处理 2. 项目亮点 亮点 吸引点 完整的功能实现 可以直接作为毕业设计使用 企业级技术栈 符合实际开发需求 清晰的代码结构 便于学习和理解 美观易用的界面 提升用户体验 丰富的技术点 涵盖Web开发核心知识 易于扩展 可以根据需求添加新功能
Mybatis 框架
主讲:Tom
Mybatis 框架
Spring 框架
主讲:Tom
Spring核心课程 零基础也能轻松上手的Spring核心攻坚课!从配置到实战,手把手带你吃透企业级开发必备框架 想入门Java后端开发,却被Spring框架的繁杂配置吓退?想搞懂Bean管理、依赖注入、AOP等核心概念,却找不到清晰的学习路径?这门Spring核心技术实战营,专为编程学习者量身打造,用3天系统化学习,从基础配置到进阶实战,拆解每一个技术难点,搭配习题巩固,让你快速掌握Spring核心技能,打通后端开发的“任督二脉”! Day01:Spring核心基础配置攻坚 · 搞定Bean管理核心逻辑 第一天直击Spring框架基础核心,从项目搭建到API实操,层层递进帮你建立Spring核心认知。你将亲手完成Spring项目配置与演示,搞懂“为什么Spring默认调用无参构造”“单例和多例Bean的核心区别”等关键问题——明确单例Bean仅创建一次、多例Bean获取时重复创建的底层逻辑,再也不用死记硬背概念。 同时深入学习Bean生命周期配置、三种实例化方式,掌握企业开发中必备的依赖注入技巧(构造函数注入+set注入),以及不同数据类型的注入实现。还会带你实操分模块开发必备的“引入其他配置文件”技能,熟练使用Spring核心API从根路径加载配置,掌握getBean()获取实例的两种核心方式(id/类型)。每一个知识点都搭配实操演示,最后通过针对性习题巩固,让你扎实掌握Spring基础配置的全流程。 Day02:注解开发效率革命 · 从XML到零配置实战 第二天聚焦“效率提升”,带你从传统XML配置平滑过渡到注解开发,解锁Spring开发的高效姿势!先复习XML注入方式,再逐个攻破Spring常用注解与新注解的用法,让你彻底明白“注解如何简化配置”。 核心实战环节将带你引入C3P0连接池并完成测试,亲手用注解简化业务层和dao层配置,最终实现“零XML配置”的纯注解开发模式。还会带你总结新注解核心用法,掌握Spring整合Junit的实操技巧,解决“测试代码冗余”的痛点。全程实操驱动,每个知识点都配套练习,让你快速掌握注解开发的核心逻辑,提升后端开发效率。 Day03:AOP核心攻坚 · 搞定面向切面编程核心逻辑 第三天攻克Spring核心难点——AOP(面向切面编程),带你从“纵向抽取”到“横向抽取”,彻底理解AOP的设计思想与核心价值。先搞懂AOP的概念、作用与优势,拆解“目标方法、增强方法、切面、切入点”等核心名词,让你不再对AOP感到困惑。 实操环节将分两步带你掌握AOP配置:先通过XML配置AOP,清晰理解AOP的实现流程;再学习注解配置AOP,解锁更高效的AOP开发方式。每个配置过程都提供详细教案参考,手把手带你练习,明确“目标方法与增强方法的关联逻辑”。最后通过针对性习题巩固,让你不仅能看懂AOP代码,还能亲手实现AOP功能,轻松应对企业开发中“日志记录、事务管理”等AOP典型应用场景。 课程优势:实战驱动+难点拆解+习题巩固,每个技术点都搭配“理论讲解+实操演示+习题练习”,零基础也能轻松跟上;聚焦企业开发核心需求,学完就能上手做项目,助力快速搭建后端开发能力体系!
Spring-MVC框架
主讲:Tom
Spring-MVC框架
Spring-boot 框架
主讲:Tom
Spring-boot 框架
gateway网关系统
主讲:
基于spring-cloud-gateway开发的网关路由服务, 用于服务与服务之间的通讯边界管理, 支持过滤器、熔断、鉴权、限流、日志、监控等功能
基于SSM、Vue架构前后端分离备忘录系统
主讲:
基于SSM、Vue架构前后端分离备忘录系统
基于SpringBoot的加解密服务接口实现
主讲:
基于SpringBoot的加解密服务接口实现
Git分布式版本控制工具
主讲:
Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。 到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 LinusTorvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标: 速度 简单的设计 对非线性开发模式的强力支持(允许成千上万个并行开发的分支) 完全分布式 有能力高效管理超大规模项目(速度和数据量)
古诗词鉴赏网站(spring Boot)项目
主讲:
古诗词鉴赏网站收录了上至先秦,下至当代共计六万余首诗词。 所有诗词均采用文本文件维护,便于编辑; 采用Spring Boot技术开发,部调试和署方便; 提供REST API接口; 提供全文搜索;
基于Lucene的搜索引擎
主讲:
Lucene搜索引擎的设计与实现: (1)支持分词查询 (2)支持全文搜索 (3)能够高亮显示搜索关键字 (4)显示查询所用的时间 (5)显示搜索历史、过滤关键字
java多线程案例
主讲:
Java多线程程序主要考虑这些因素: (一)对同一个数量进行操作 (二)对同一个对象进行操作 (三)回调方法使用 (四)线程同步,死锁问题 (五)线程通信 代码块锁是一个防止数据发生错误的一个重要手段。 对象的统一性是非常重要的,这要想到对象的传入问题, 要操作的对象只能new一次,其他的操作都是对这个传入的对象进行的, 才能保证数据一致性,完整性和正确性。
JSwing技术-GUI桌面软件案例小项目
主讲:
Swing 是一个为Java设计的GUI工具包。 Swing是JAVA基础类的一部分。 Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。 Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行。 通过常用的案例来学习JSwing桌面窗体软件的开发。
GUI-贪吃蛇游戏项目-jswing技术
主讲:
Swing 是一个为Java设计的GUI工具包。 Swing是JAVA基础类的一部分。 Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。 Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行。 它们支持可更换的面板和主题(各种操作系统默认的特有主题)。 这意味着你可以在任意平台上使用JAVA支持的任意面板。 可以在所有平台上采用统一的行为。
电影平台项目-boot+jpa
主讲:
本项目主要以SpringBoot架构核心; 使用Spring Data Jpa作为数据访问对象层; 使用Spring Security作为web安全框架; 使用thymeleaf作为视图层模版引擎; 前台页面采用Bootstrap,后台管理页面采用Easyui;
电影/短视频/长视频/小剧场/视频资讯/教育教程门户/平台类项目
主讲:
电影/短视频/长视频/小剧场/视频资讯/教育教程门户/平台类项目 虽然项目业务用途不同,但是项目代码大部分是通用的。 类似平台很多,比如: 电影快讯平台 电影资讯平台 短视频平台 等等。 1、同学可以站在产品经理的角度去规划和设计项目,哪些功能可以拓展,哪些功能可以优化,项目预算和收益等。 2、站在项目经理的角度去思考去把控项目进度,协调人员分配进度,主要是各团队介入和完成项目时间节点(前端开发团队、后端开发团队、测试团队、DBA和运维团队等) 3、站在开发经理的角度去思考,分配人员工作职责,把控项目质量(架构师、开发leader、普通开发) 4、站在架构部门、开发leader、实际开发编码人员角度去搭好项目框架,确定项目模块和层次,仔细把代码编写实现出来,完成要求的功能。 5、亲自去思考,去实现,去除心里的不敢动手,经不起问的问题,自己切实参与项目,熟悉项目, 这样无论面试怎么问,都不用担心。 项目使用技术: 框架:Spring Boot 2.0.5.RELEASE、Mybatis 模板:Thymeleaf 数据库:MySQL、Redis 缓存:Spring Cache 安全控制:Spring Security 插件:Druid连接池、Mybatis Generator、通用Mapper、PageHelper分页插件、Lombok、Spring Boot Devtools热部署
微服务SpringCloud
主讲:
单体架构: All in one,即把所有的功能模块都放到一个应用中的架构方式,也称为单体系统或者单体应 用。如电商系统中把商品模块,订单模块,支付模板等都集成在一个应用中。 微服务: 一种架构风格,将一个复杂的软件应用拆分为多个微小的服务,这些服务都是彼此独立的,并且 可以独立部署(运行在各自的进程里互不影响),可以通过HTTP的方式进行通信。 例如,大型电商项目,有订单模块,支付模板,商品模块等等,微服务就是把这些模块独立编写成一个 服务,而不是在一个项目中集成所有模块。 SpringCloud是基于Springboot的一整套实现微服务的框架,也当今非常流行的微服务架构解决方案。
在线考试系统项目(JAVAEE+数据库)
主讲:
三层框架(UI层+业务逻辑层+数据层) UI层(控制层):Controller 接收和处理用户请求,控制页面跳转,把数据传递到业务逻辑层 业务逻辑层:做一些业务逻辑校验,可能会调用数据层 数据层(dao层),用于和数据库直接操作,对数据进行增删改查 实体层(pojo层),定义项目中使用的javabean 请求链路图: 各层之间通过接口弱耦合
前后端+数据库+Ajax+json项目
主讲:
Servlet+JDBC+Ajax+Mysql+Json前后端分离项目+三层框架 三层框架(UI层+业务逻辑层+数据层) UI层(控制层):Controller 接收用户请求数据,把数据传递到业务逻辑层 业务逻辑层:做一些业务逻辑校验,可能会调用数据层 数据层:调用数据库(对数据库进行增删改查) 网站名:mysite(自定义的项目名、网站名) ——————src:(java source java的源代码) 三层框架(UI层(控制层)+业务逻辑层+数据层) ——————————controller:(控制层,用于接收前端请求,响应前端数据) ——————————service:(业务逻辑层,做一些业务逻辑校验,可能会调用数据层) ——————————dao:(数据层,调用数据库(对数据库进行增删改查)) ——————————model:(模型,项目中会使用到的类) ——————————utils:(工具类集合,项目中会使用到的通用的方法类) ——————WebRoot:(名字自定义,前端代码+java编译后的字节码+外部的依赖库lib) —————————————WEB-INF\classes:(java编译后的字节码) —————————————WEB-INF\lib:(外部的依赖库lib) —————————————js:(自定义的名字,放JavaScript脚本文件) —————————————images:(自定义的名字,放图片网站) —————————————jsp java的网页文件 —————————————html:(前端页面)
白盒单元测试-junit框架
主讲:Tom
JUnit是一个Java语言的白盒单元测试框架。 JUnit有它自己的JUnit扩展生态圈。 多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
Test1
主讲:
frameborder="0" scrolling="no" onload="resizeIframe(this)"> // 获取 iframe 元素 const gameFrame = document.getElementById('gameIframe'); // 直接执行,无需重复绑定onload function resizeIframe(iframe) { try { // 解决跨域限制:优先用contentWindow获取文档(兼容更多浏览器) const iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow; const doc = iframeWin.document; // 确保文档完全加载(包括图片、脚本) if (doc.readyState === "complete" || doc.readyState === "interactive") { // 取最大高度(兼容不同浏览器的高度计算) const height = Math.max( doc.body.scrollHeight, // 内容实际高度 doc.documentElement.scrollHeight, // 文档总高度 doc.body.offsetHeight, // 元素可见高度 doc.documentElement.offsetHeight, doc.body.clientHeight, // 视口高度 doc.documentElement.clientHeight ); // 设置最终高度(加20px缓冲,避免底部截断) iframe.style.height = (height + 20) + "px"; } else { // 若文档未加载完成,延迟100ms重试 setTimeout(() => resizeIframe(iframe), 100); } } catch (e) { // 跨域时的降级方案:直接设置足够大的固定高度 console.log("跨域限制,使用固定高度"); iframe.style.height = "650px"; // 游戏实际所需高度 } } // 页面加载完成后再触发一次,确保万无一失 window.onload = function() { const iframe = document.getElementById("gameIframe"); if (iframe) { resizeIframe(iframe); } }; // 捕获整个文档的键盘事件 document.addEventListener('keydown', function(e) { // 只关心我们游戏需要的键 const allowedKeys = ['ArrowLeft', 'ArrowRight', 'Space']; if (allowedKeys.includes(e.key)) { // 向 iframe 发送消息 // 第二个参数 '*' 表示可以发送给任何域,在生产环境中应指定确切的目标域,例如 'http://localhost:8000' gameFrame.contentWindow.postMessage({ type: 'keyEvent', event: { type: 'keydown', key: e.key } }, '*'); // 阻止默认行为,防止页面滚动或其他浏览器行为 e.preventDefault(); } }); document.addEventListener('keyup', function(e) { const allowedKeys = ['ArrowLeft', 'ArrowRight', 'Space']; if (allowedKeys.includes(e.key)) { gameFrame.contentWindow.postMessage({ type: 'keyEvent', event: { type: 'keyup', key: e.key } }, '*'); e.preventDefault(); } });
Test1
主讲:
frameborder="0" scrolling="no" onload="resizeIframe(this)"> // 获取 iframe 元素 const gameFrame = document.getElementById('gameIframe'); // 直接执行,无需重复绑定onload function resizeIframe(iframe) { try { // 解决跨域限制:优先用contentWindow获取文档(兼容更多浏览器) const iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow; const doc = iframeWin.document; // 确保文档完全加载(包括图片、脚本) if (doc.readyState === "complete" || doc.readyState === "interactive") { // 取最大高度(兼容不同浏览器的高度计算) const height = Math.max( doc.body.scrollHeight, // 内容实际高度 doc.documentElement.scrollHeight, // 文档总高度 doc.body.offsetHeight, // 元素可见高度 doc.documentElement.offsetHeight, doc.body.clientHeight, // 视口高度 doc.documentElement.clientHeight ); // 设置最终高度(加20px缓冲,避免底部截断) iframe.style.height = (height + 20) + "px"; } else { // 若文档未加载完成,延迟100ms重试 setTimeout(() => resizeIframe(iframe), 100); } } catch (e) { // 跨域时的降级方案:直接设置足够大的固定高度 console.log("跨域限制,使用固定高度"); iframe.style.height = "650px"; // 游戏实际所需高度 } } // 页面加载完成后再触发一次,确保万无一失 window.onload = function() { const iframe = document.getElementById("gameIframe"); if (iframe) { resizeIframe(iframe); } }; // 捕获整个文档的键盘事件 document.addEventListener('keydown', function(e) { // 只关心我们游戏需要的键 const allowedKeys = ['ArrowLeft', 'ArrowRight', 'Space']; if (allowedKeys.includes(e.key)) { // 向 iframe 发送消息 // 第二个参数 '*' 表示可以发送给任何域,在生产环境中应指定确切的目标域,例如 'http://localhost:8000' gameFrame.contentWindow.postMessage({ type: 'keyEvent', event: { type: 'keydown', key: e.key } }, '*'); // 阻止默认行为,防止页面滚动或其他浏览器行为 e.preventDefault(); } }); document.addEventListener('keyup', function(e) { const allowedKeys = ['ArrowLeft', 'ArrowRight', 'Space']; if (allowedKeys.includes(e.key)) { gameFrame.contentWindow.postMessage({ type: 'keyEvent', event: { type: 'keyup', key: e.key } }, '*'); e.preventDefault(); } });
联系Tom老师
扫码添加老师微信
微信1二维码 微信2二维码
QQ:
1445154666
邮箱:
1445154666@qq.com