- 博客(639)
- 收藏
- 关注
原创 Spring 的 @Configuration 注解深入理解,小白也能完全掌握!
Configuation等价于@Bean等价于@ComponentScan等价于Condition如果你想根据自己的条件来决定是否加载某个bean,可以自定义实现Condition接口,并使用注解。Condition注解用于基于条件决定bean的注册,可以通过实现Condition接口来定义自己的条件。自定义Condition类的matches方法来定义条件是否匹配,可以基于环境、系统属性、类路径等多种条件。通过注解结合自定义条件来实现更加灵活和动态的bean管理。
2025-01-05 17:00:32
1345
原创 SpringBoot(七)| 员工管理系统
(一)环境搭建bootstrap模板: https://getbootstrap.com/docs/4.0/examples/项目源码:https://pan.baidu.com/s/1xpuOl0OXvwOf50nsxD5sOw总体项目结构:1. 新建一个SpringBoot项目选择配件时勾选SpringWeb和Thymeleaf点击next,然后finish创建完成即可2. 导入依赖和静态资源导入 lombok 依赖,还要在 IDEA 上安装 lombok 插件<!-
2025-01-03 19:54:42
715
原创 SpringBoot(六) | Thymeleaf 模板引擎、MVC 自动配置原理
前端交给我们的页面,是 html 页面。如果是我们以前开发,我们需要把他们转成 jsp 页面,jsp 好处就是当我们查出一些数据转发到 JSP 页面以后,我们可以用jsp轻松实现数据的显示,及交互等。jsp 支持非常强大的功能,包括能写 Java 代码,但是呢,我们现在的这种情况,SpringBoot 这个项目首先是以 jar 的方式,不是 war,第二,我们用的还是嵌入式的 Tomcat,所以呢,他现在默认是不支持 jsp 的。
2025-01-03 16:53:27
958
原创 SpringBoot(五) | SpringBootWeb开发、首页定制
是将web前端资源(js,css等)打成jar包文件,然后借助Maven工具,以jar包形式对web前端资源进行统一依赖管理,保证这些Web资源版本唯一性。WebJars的jar包部署在Maven中央仓库上。webjars,所有的都是以 maven 依赖的形式导入Webjars 本质就是以 jar 包的方式引入我们的静态资源 , 我们以前要导入一个静态资源文件,直接导入即可。找到其中的 jQuery,测试一下
2025-01-03 15:37:47
980
原创 SpringBoot(三) | yaml 语法、注入配置文件、加载指定的配置文件
YAML是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)这种语言以数据作为中心,而不是以标记语言为重点!以前的配置文件,大多数都是使用xml来配置;比如一个简单的端口配置,我们来对比下yaml和xml传统xml配置:</
2025-01-03 14:41:25
1319
原创 SpringBoot(二) | SpringBoot 原理探究
是SpringBoot应用的入口点。创建并配置实例。准备并启动应用上下文(执行SpringBoot的自动配置。启动内嵌的Web服务器(如Tomcat、Jetty等)。处理应用生命周期事件。这一行代码在SpringBoot应用中扮演了至关重要的角色。其底层执行流程涵盖了应用的环境准备、上下文创建、Bean的初始化、自动配置的应用以及内嵌Web服务器的启动等多个关键步骤。通过深入理解这些流程,可以更好地掌握SpringBoot应用的启动机制,进行更高效的开发和调试。
2025-01-03 11:43:37
696
1
原创 SpringBoot(一) | SpringBoot简介、微服务架构、第一个 SpringBoot 程序
Spring 是一个开源框架,2003 年兴起的一个轻量级的 Java 开发框架,作者:Rod Johnson。Spring 是为了解决企业级应用开发的复杂性而创建的,简化开发。Spring 是如何简化 Java 开发的为了降低 Java 开发的复杂性,Spring 采用了以下4种关键策略:1、基于 POJO 的轻量级和最小侵入性编程,所有东西都是 bean;2、通过 IOC,依赖注入(DI)和面向接口实现松耦合;3、基于切面(AOP)和惯例进行声明式编程;
2025-01-03 10:49:27
325
原创 SpringMVC(七)
那如何实现拦截器呢?想要自定义拦截器,必须实现 HandlerInterceptor 接口。1、新建一个Moudule , springmvc-07-Interceptor , 添加web支持2、配置web.xml 和 springmvc-servlet.xml 文件web.xml。
2025-01-02 19:28:37
650
原创 SpringMVC(六) | Ajax
此代码示范了如何结合 JSP 和 jQuery 实现客户端与服务器之间的异步数据交互,并在用户输入框失去焦点时触发请求。它展示了如何通过 jQuery 的 AJAX 技术与服务器进行交互,以及如何在客户端进行基本的表单验证和错误处理。5、启动 tomcat 测试!打开浏览器的控制台,当我们鼠标离开输入框的时候,可以看到发出了一个 ajax 的请求!是后台返回给我们的结果!测试成功!Ajax 实现前后端分离前端:HTML+ css:略懂 + js(超级熟练)Springmvc 实现实体类 user。
2025-01-02 19:13:03
1062
原创 深入浅出 MyBatis | 动态SQL、缓存
再次查询的时候走缓存,不用走数据库了读写分离,主从复制存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库查询文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。Ehcache是一种广泛使用的开源Java分布式缓存,主要面向通用缓存。要在程序中使用ehcache,先要导包!搜索 MyBatis Ehcache,添加依赖</</</</在 mapper 中指定使用我们的 ehcache 缓存实现!
2025-01-02 15:28:48
1034
原创 SpringMVC(五) | 整合SSM框架
05:整合SSM框架整合SSM环境要求环境:IDEAMySQL 5.7.19Tomcat 9Maven 3.6要求:需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;数据库环境创建一个存放书籍数据的数据库表CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT(
2025-01-02 14:49:49
865
原创 SpringMVC(四) | Json 交互处理、Json 下的中文乱码解决
在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。很多人搞不清楚 JSON 和 JavaScript 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:JSON 是 JavaScript 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。1、新建一个module ,springmvc-05-json , 添加web的支持。
2025-01-02 14:33:30
897
原创 SpringMVC(三) | 数据处理及跳转
设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .页面 : {视图解析器前缀} + viewName +{视图解析器后缀}</对应的controller类。
2025-01-02 14:26:30
1039
原创 深入浅出 MyBatis | Lombok、多对一处理、一对多处理
该mapper元素绑定了接口,表示该 XML 配置文件用于定义与该接口相关的 SQL 查询语句。</:定义了一个查询方法,该方法会执行相应的 SQL 查询。:指定查询结果应映射到的resultMap中,resultMap定义了 SQL 查询结果如何映射到 Java 对象。:查询学生表和老师表,返回学生的id和name,以及老师的name。s.id sid:将学生的id列映射为sid,用来与 Java 对象的属性id对应。:将学生的name列映射为sname,用来与 Java 对象的属性name。
2025-01-02 11:51:03
1016
原创 SpringMVC(二) | RestFul 和控制器 Controller
RESTful 风格的具体实现RESTful 风格(Representational State Transfer)是一种设计和开发网络应用的架构风格,核心思想是通过URI表示资源,并通过HTTP 方法操作资源。1. RESTful 核心概念RESTful 中每个资源都用 URI 唯一标识。例如,/employees表示员工资源。资源是名词化的,避免在 URI 中使用动词。不同的 HTTP 方法对应资源的操作:获取资源。创建资源。更新资源(整体更新)。部分更新资源。删除资源。
2025-01-01 23:21:19
660
原创 SpringMVC(一) | SpringMVC 简介、第一个MVC程序
1、回顾MVCMVC:模型(dao,service)、视图(jsp)、控制器(Servlet)MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。
2025-01-01 21:32:34
764
原创 深入浅出 Spring(五)| 整合 MyBatis、声明式事务
MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。
2025-01-01 20:54:38
722
原创 深入浅出 Spring(四)| AOP
下面将会围绕 Spring AOP 中的常见概念进行总结,并且给出一个完整的示例。示例会包含「注解方式」与「XML 配置方式」两个版本import orgSystem . out . println("[LoggingAspectXml - Before] 方法名称: " + methodName);
2025-01-01 20:45:32
585
原创 深入浅出 Spring(三)| 注解开发(属性注入、自动装配、作用域、配置类)、静态/动态代理模式
JavaConfig 原来是 Spring 的一个子项目,它通过 Java 类的方式提供 Bean 的定义信息,在 Spring4 的版本, JavaConfig 已正式成为 Spring4 的核心功能。在这个过程中,你直接接触的就是中介,就如同现实生活中的样子,你看不到房东,但是你依旧租到了房东的房子通过代理,这就是所谓的代理模式,程序源自于生活,所以学编程的人,一般能够更加抽象的看待生活中发生的事情。我们在不改变原来的代码的情况下,实现了对原有功能的增强,这是AOP中最核心的思想。
2025-01-01 20:27:35
629
原创 深入浅出 Spring(一) | Spring简介、IOC理论推导、快速上手 Spring
在配置文件加载的时候,容器中管理的对象就已经初始化了!
2024-12-30 22:01:40
801
4
原创 JAVA 工厂模式总结
简单工厂模式是一种创建型设计模式,它提供了一个静态方法(或其他静态机制)来封装对象的创建过程,客户端只需要传入相应的参数,就可以获取到所需要的对象实例,而无需关心具体的创建细节。定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。抽象工厂模式是一种为访问一系列相互关联或相互依赖的对象提供一个接口,而无需指定它们具体的类。在抽象工厂模式中,有一个抽象工厂接口定义了创建产品对象的操作接口,但由子类来决定实例化哪一个类。
2024-12-30 20:26:42
1125
原创 JAVAWeb | SMBMS项目实验(三)
对于用户管理这部分,要养成思路,显示的这些数据可能并不只是在 MySQL 的一张表里面查,可能是多张表,也可能是多个数据库里面查,去 oracle 里面查,也可能是多台电脑分布式去查发起请求, Sevlet 处理请求,并调用业务,去查询数据库的角色列表,用户列表,同时处理分页,需要设定每页大小 pagesize,以及所有数据的总数。pagesize 是固定的,数据总数是数据库里面查的,不固定。用户列表先到 service 层查询,service 层调 Dao 层,其他同,Dao 层操作数据库。
2024-12-30 15:49:34
740
原创 JAVAWeb | SMBMS 项目实战(一)
数据库项目如何搭建?考虑使不使用 maven?不使用则需要导入 jar 包,使用则需要导入依赖搭建项目准备工作1. 搭建一个maven web 项目删除 pom.xml 中无关紧要的内容,留下如图所示的内容:将 web.xml 的内容用如下替换掉(因为下面这个是最新的,好用,一般不会有问题,在 tomcat 的文件夹下也可以找到这个配置信息)<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xm
2024-12-30 15:36:56
764
原创 MyBatis 的插件运行原理,以及如何编写一个插件
MyBatis 支持插件链机制,一个插件可以拦截并修改目标方法的行为,然后将调用传递给下一个插件,最终执行实际的数据库操作。当 MyBatis 执行 SQL 查询时,会对涉及的四大接口方法进行拦截,并按照配置的插件顺序依次执行 intercept() 方法。MyBatis 利用 Java 动态代理技术,针对 ParameterHandler、ResultSetHandler、StatementHandler 和 Executor 这四种核心接口创建代理对象,当这四个核心组件执行方法时,会经过插件链的拦截。
2024-12-26 19:53:43
964
原创 MyBatis 是如何进行分页的?分页插件的原理是什么?
分页(Pagination)是将一个大的数据集划分为多个小的部分(页面),每个页面包含一定数量的记录。分页的目的是使用户能够方便地查看数据集中的一部分,而不是一次性加载和展示整个数据集。举个例子,假设有一个包含 1000 条用户数据的数据库表。加载时间过长:加载大量数据会消耗大量时间,给用户带来较差的体验。浏览效率低:用户不需要查看所有 1000 条记录,他们可能只关心其中的一部分数据。内存压力大:一次性加载大量数据可能导致服务器内存占用过高,影响系统性能。
2024-12-26 19:32:57
1248
原创 深入浅出 MyBatis | CRUD 操作、配置解析
namespace 中的包名要和 Dao/Mapper 接口的包名一致!比如将 UserDao 改名为 UserMapper运行发现抱错,这是因为 UserMapper.xml 中没有同步更改 namespace成功运行给出 UserMapper 中的所有接口,接下来一一对这些接口实现 CRUD 操作pojo 下对应的数据库表的实体类 User,其中 mybatis.user 的 mybatis 是我定义的数据库的名,如果你的数据库名为 xxx,因为为。
2024-12-26 16:55:17
1070
原创 深入浅出 MyBatis | Mybatis 简洁、第一个Mybatis程序
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
2024-12-26 16:20:47
972
原创 JAVAWeb(四)| JavaBean、MVC三层架构、Filter、监听器、JDBC
9、JavaBean实体类JavaBean有特定的写法:必须要有一个无参构造属性必须私有化必须有对应的Get/Set方法;一般用来和数据库的字段做映射 ORM;ORM :对象关系映射(数据库与JAVA中的对应)表 →\to→ 类字段 →\to→ 属性行记录 →\to→ 对象表结构如下idnameageaddress1future1号3西安2future2号18西安3future3号100西安对应的 java 代码如下
2024-12-24 17:00:30
818
原创 JAVAWeb(三) | JSP
Java Server Pages : Java 服务器端页面,也和 Servlet 一样,用于动态Web技术!写JSP就像在写HTML区别:HTML只给用户提供静态的数据JSP页面中可以嵌入JAVA代码,为用户提供动态数据;
2024-12-24 16:57:03
1204
原创 JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介
1. 基本概念1.1、前言web开发:web,网页的意思,www.baidu.com·静态 webhtml,css提供给所有人看的数据始终不会发生变化!动态 web淘宝,几乎是所有的网站;提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!技术栈:Servlet/JSP,ASP,PHP1.2、web应用程序可以提供浏览器访问的程序;a.html、b.html.…. 多个 web 资源,这些 web 资源可以被外界访问,对外界提供服
2024-12-24 16:54:13
1381
原创 深入浅出 JAVA 反射机制 | 通俗易懂
反射(Reflection)是指在程序运行时,能够动态地获取关于对象、类、方法等的信息,并对其进行操作的能力。换句话说,反射允许程序在运行时自我检查其结构(例如类名、方法、字段等),并在运行时根据这些信息做出决策或修改程序行为。反射通常是通过获取由类加载器(ClassLoader)加载的Class对象来完成的。类加载器负责将类的字节码文件加载到JVM中,并生成相应的Class对象,反射机制正是基于这些Class对象来访问类的元数据(如方法、字段、构造函数等)并执行相关操作。
2024-12-24 10:37:58
976
原创 JAVA 动态代理 | 基于反射机制
动态代理(理解): 基于反射机制。掌握的程度什么是动态代理?使用jdk的反射机制,创建对象的能力, 创建的是代理类的对象。而不用你创建类文件。不用写java文件。动态:在程序执行时,调用jdk提供的方法才能创建代理类的对象。jdk动态代理,必须有接口,目标类必须实现接口, 没有接口时,需要使用cglib动态代理知道动态代理能做什么?可以在不改变原来目标方法功能的前提下, 可以在代理中增强自己的功能代码。
2024-09-18 20:10:05
980
1
原创 Web 服务器介绍 | 通过 Tomcat 说明其作用
1. 什么是 Web 服务器?Web服务器是一种用于存储、处理和提供网页或Web应用程序的服务器。它通过HTTP(超文本传输协议)与客户端(通常是浏览器)进行通信,接收客户端的请求(如网页请求),并将相关的资源(如HTML页面、图片、视频等)返回给客户端。Web服务器也可以与应用服务器、数据库服务器等配合,以实现更复杂的业务逻辑。常见的Web服务器软件包括:Apache HTTP Server、Nginx、Microsoft IIS等。我们可以把静态网页部署到Web服务器上,Web服务器通常只能运行静
2024-09-18 19:02:21
1970
原创 Intellij Idea + Git 完美实战!
左侧为分支 lqh,右侧为分支 master,点击箭头可将分支 lqh 对当前文件的修改应用到分支 master。克隆后的文件位置给出的文件如果不存在会自动创建,如果存在,需要为空。切换为目标分支之后,对此分支进行pull操作,保证当前代码版本为最新。灰色文件:分支 master 有,而分支 lqh 没有。绿色文件:分支 lqh 有,而分支 master 没有。将需要修改的文件修改完毕后可将代码推送到远程分支B。蓝色文件:两个分支都有,但有一部分做了修改。删除分支后,需要 push 到远程仓库。
2024-08-27 10:08:23
2524
原创 B 树与 B+ 树
B树的出现是为了弥合不同的存储级别之间的访问速度上的巨大差异,实现高效的 I/O。平衡二叉树的查找效率是非常高的,并可以通过降低树的深度来提高查找的效率。但是当数据量非常大,树的存储的元素数量是有限的,这样会导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下。另外数据量过大会导致内存空间不够容纳平衡二叉树所有结点的情况。B树是解决这个问题的很好的结构。
2024-07-27 17:41:02
922
原创 红黑树(RBTree)
知道 ALV 树是一种严格按照定义来实现的平衡二叉查找树,所以它查找的效率非常稳定,为 O(log n),由于其严格按照左右子树高度差不大于 1 的规则,插入和删除操作中需要大量且复杂的操作来保持 ALV 树的平衡(左旋和右旋),因此 ALV 树适用于大量查询,少量插入和删除的场景中那么假设现在有这样一种场景:大量查询,大量插入和删除,现在使用 ALV 树就不太合适了,因为 ALV 树大量的插入和删除会非常耗时间,那么我们是否可以降低 ALV 树对平衡性的要求从而达到快速的插入和删除呢?
2024-07-27 15:53:07
727
Spring6-课件与资料
2024-02-23
Maven-尚硅谷课件与代码
2024-02-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人