自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 【Spring MVC】使用 Java 类配置 Spring MVC

在 Spring MVC 中,使用来替代传统的 XML 配置是一种现代且常见的配置方式。通过这种方式,我们可以使用 Java 类和注解来配置 Spring MVC 的各个组件,如 DispatcherServlet、ViewResolver、Controller 等。这种方式使得代码更加简洁和类型安全。

2024-07-30 01:31:51 205

原创 【Spring MVC】基本原理和工作流程

负责接收并分派请求,是整个框架的核心。:负责将请求映射到处理器(Controller)。Controller:处理业务逻辑并返回模型数据和视图信息。:对请求处理器进行适配,以便于调用。:将逻辑视图名解析为具体的视图实现。View:负责渲染模型数据,将结果返回给客户端。通过以上示例,我们可以看到 Spring MVC 的核心工作流程和组件如何协作完成一个完整的请求处理过程。在开发过程中,我们可以根据需要扩展和定制各个组件,以适应具体的业务需求。

2024-07-28 16:12:57 106

原创 【Mybatis】 进阶特性

import org// 执行原方法 System . out . println("After SQL Execution");// 读取配置文件中的属性 System . out . println("Plugin Properties: " + properties);} }// 执行原方法 System . out . println("After SQL Execution");

2024-07-28 15:12:28 316

原创 【Mybatis】返回值类型和参数传递-补充

除了自动映射结果,MyBatis 还支持自定义结果映射,通过resultMap进行复杂的映射操作。

2024-07-27 14:26:22 790

原创 【Mybatis】知识点总结

MyBatis 是一个持久化框架(persistence framework),它简化了对数据库的访问,同时又保留了对 SQL 的控制。它在数据持久化的过程中,避免了大量的 JDBC 代码以及手动设置参数和获取结果的繁琐步骤。相比于 Hibernate 等全自动 ORM 框架,MyBatis 更轻量级且灵活,特别适用于需要手写复杂 SQL 的场景。接下来,我们将详细介绍 MyBatis 的各个方面。目录MyBatis 简介MyBatis 的基本概念MyBatis 配置文件Mapper 文件Ma

2024-07-27 14:23:31 271

原创 【MyBatis】mybatis的使用及与spring的集成

SQL 语句的复用和组织:通过 XML 或注解来定义 SQL。动态 SQL:支持在 SQL 中使用动态逻辑。自动映射:结果集可以自动映射到 Java 对象。灵活性:允许使用原始 SQL,适用于需要精确控制的数据库操作。缓存支持:支持一级缓存和二级缓存。MyBatis 是一个轻量级的持久化框架,提供了对 SQL 的良好支持和灵活性。基本配置和使用XML 和注解方式的配置与 Spring 的集成Spring Boot 环境中的使用。

2024-07-27 11:49:33 291

原创 【Spring Framework】Spring 事务使用的完整示例

配置:数据库连接和事务管理器的配置可以使用 Java 配置或 XML 配置,根据项目需求选择合适的方式。实体类:定义了与数据库表映射的 Java 类。DAO 层:负责具体的数据库操作,如创建、读取、更新和删除(CRUD)操作。服务层:封装业务逻辑,并通过注解来管理事务。测试:验证事务管理是否按预期工作,测试正常情况下和异常情况下的事务回滚行为。通过上述示例,您可以清楚地了解如何在 Spring 框架中配置和使用事务管理。

2024-07-26 22:32:46 241

原创 【Spring Framework】 Spring 事务管理

Spring 事务管理提供了一种灵活、强大的方式来管理应用程序中的事务。通过使用 Spring 事务,开发者可以轻松地实现数据的一致性和完整性。无论是编程式事务管理还是声明式事务管理,Spring 都能很好地支持各种场景的事务需求。在实际项目中,开发者应根据业务需求合理选择事务传播行为、隔离级别和事务管理器,以实现高效的事务管理。

2024-07-26 22:32:19 312

原创 【Spring Framework】Spring AOP 常用案例

通过这些常见的 Spring AOP 案例,我们可以看出 AOP 的强大和灵活性。Spring AOP 通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化、解耦和可重用性,提升了应用程序的可维护性和扩展性。这些案例展示了如何利用 AOP 解决日志记录、事务管理、权限控制、性能监控、缓存管理、访问控制、数据验证和应用程序配置等常见问题。在实际应用中,可以根据需要灵活调整和扩展这些功能,为应用程序带来更高效的开发体验和更出色的性能表现。

2024-07-26 19:29:02 370

原创 【Spring Framework】Spring AOP 面相切面编程

定义一个简单的用户服务接口定义一个切面类import org// 定义切点,匹配com.example.service包及其子包下的所有方法 @Pointcut("execution(* com.example.service..*(..))") public void serviceLayer() {

2024-07-26 19:18:32 848

原创 【Java】泛型动态代理工厂使用案例

我们定义一个简单的用户服务接口和它的实现类,作为我们的动态代理目标。// 定义用户服务接口// 实现接口的具体类@OverrideSystem.out.println("添加用户: " + name);@OverrideSystem.out.println("删除用户: " + name);@Overridereturn "找到用户: " + name;通过使用 Java 的动态代理和泛型,我们能够创建一个灵活的代理工厂,支持自动获取目标对象的接口类型,从而简化代理对象的创建过程。

2024-07-26 14:19:56 220

原创 【Java】动态代理技术

静态代理:在编译期确定代理类,即我们需要手动编写代理类。在这种情况下,代理类与目标类需要实现相同的接口。虽然静态代理能够增强方法,但它不够灵活,因为每次新增接口或方法都需要编写新的代理类。动态代理:在运行时动态创建代理类。Java动态代理主要基于接口进行代理,使用类和接口。动态代理通过反射机制实现,不需要手动编写代理类,能够动态地为接口生成代理类。// 定义用户服务接口// 实现接口的具体类@OverrideSystem.out.println("添加用户: " + name);

2024-07-26 14:14:33 838

原创 【Spring Framework】使用完全注解方式开发

本文介绍了如何使用 Spring 完全注解化的方式来进行开发。通过使用注解,我们可以减少 XML 配置文件的使用,使项目的配置更加直观和简洁。配置类:使用@Bean等注解定义配置类。数据库配置:使用DataSource以及@Autowired自动装配数据源。服务层和控制器层:使用@Service和注解定义业务逻辑和控制器,并使用@Autowired注入依赖。AOP 和事务管理:通过@Aspect和注解实现日志记录和事务管理。

2024-07-26 00:55:46 964

原创 【Spring Framework】MySQL 数据库连接配置

XML 配置:适用于传统项目,使用 XML 文件配置数据源和 JdbcTemplate。Java 注解配置:更现代化的方法,使用 Java 配置类来定义数据源和 JdbcTemplate。Spring Boot 自动配置:最简便的方式,利用 Spring Boot 的自动配置功能,通过配置文件定义数据库连接。每种方式都有其适用的场景,选择合适的配置方式可以提高开发效率和代码可维护性。通常,现代应用程序会倾向于使用 Spring Boot 的自动配置以简化开发流程。

2024-07-26 00:06:05 948

原创 【Spring Framework】 用XML配置文件配置FactoryBean

是 Spring 框架提供的一个特殊的 Bean 接口,它允许在 Bean 实例化过程中插入自定义的逻辑。通过实现接口,你可以控制如何创建某个对象的实例,并将其提供给 Spring 容器。创建复杂对象的实例动态代理对象的创建延迟实例化对象条件实例化对象:返回由创建的 Bean 实例。Class<?:返回由创建的 Bean 类型。:指示由创建的 Bean 是否为单例。首先,定义一个简单的Car// 构造函数// Getter 和 Setter 方法。

2024-07-25 17:53:11 669

原创 【Spring Framework】使用XML配置文件配置Bean的实例化方式

无参构造函数: 最简单的方法,适用于基本的 bean 实例化。有参构造函数: 适合需要依赖注入的 bean。静态工厂方法: 用于复杂的实例化逻辑。实例工厂方法: 通过实例化工厂类来创建 bean。自定义构造函数参数: 支持复杂的 bean 配置。@Bean注解: 在 Java 配置类中使用,用于创建 bean 实例。选择合适的实例化方式可以帮助更好地管理 bean 的生命周期和依赖关系。

2024-07-25 16:47:20 607

原创 【Spring Framework】使用XML配置文件定义Bean及其依赖注入方式

Spring XML 配置文件主要用于描述应用程序的组件、组件间的关系以及配置组件的属性。在早期的 Spring 开发中,XML 配置文件是定义 Spring 应用程序上下文的主要方式。Bean 定义:声明应用程序中使用的 Java 对象。依赖注入:配置 Bean 之间的依赖关系。作用域设置:定义 Bean 的生命周期和范围。生命周期回调:定义 Bean 初始化和销毁时的回调方法。属性配置:加载外部属性文件并配置 Bean 属性。

2024-07-25 16:46:42 363

原创 【Spring Framework】使用 XML 配置文件的使用方法

Spring Framework 的 XML 配置提供了强大的灵活性和控制能力,尽管现代开发中更多使用注解和 Java 配置,但了解 XML 配置仍然对维护旧项目和理解 Spring 的核心机制非常有帮助。通过 XML 配置,你可以定义和管理 Spring 容器中的 bean、配置依赖注入、设置 AOP、事务管理等。

2024-07-25 16:33:30 292

原创 【Jackson】注解及其使用

Jackson库中的注解可以帮助你灵活地控制JSON数据的序列化和反序列化过程。通过合理使用这些注解,你可以实现字段重命名、忽略字段、设置字段包含策略、处理日期格式、定义自定义序列化和反序列化逻辑、解决循环引用问题、多态处理等功能。这些功能使得Jackson在处理复杂JSON数据时非常强大和灵活。

2024-07-25 13:03:12 532

原创 【Jackson】在Java项目中使用Jackson解析JSON字符串

在这一步,我们将定义一个简单的Java类来表示我们希望解析的JSON结构。"age": 30,为此,我们可以创建一个名为User// 构造方法// Getter和Setter方法return age;// 重写toString方法,便于打印对象信息@Override'}';

2024-07-25 12:53:11 711

原创 【Maven】 的继承机制

在某些情况下,我们可能需要自定义一个父POM,用于管理公司的多个项目。创建一个,其中包含公司标准的依赖、插件和构建配置。每个项目都可以继承这个,实现标准化的项目管理。公司父POM</</</</</</</</</</</</</</</</</</</</</</</项目POM</</</</</</</</</</</Maven的继承机制是项目管理中的一个重要特性,它通过父子关系实现配置复用、集中管理和模块化开发。在实际应用中,我们可以结合继承和聚合机制,实现更高效的项目管理。

2024-07-25 11:53:35 313

原创 Maven 的安装配置

希望以上步骤能帮助您成功安装和配置 Maven!打开 Maven 解压目录下的。是您自定义的本地仓库路径。

2024-07-24 19:07:38 294

原创 【React】如何更好的在组件中使用浏览器的history属性

在React Router v5示例中,我们创建了一个高阶组件,用于将historylocation和match属性传递给被包装的组件。通过这种方式,可以在任何需要的地方使用history属性来管理浏览器的导航。使用 React Router v6 和钩子,代码更加简洁和现代化。如果可能,建议使用 React Router v6 来管理路由和导航。

2024-07-21 18:43:06 278

原创 【React】常见的 HOC 使用案例

高阶组件是一种强大的模式,可以在 React 中实现代码复用和逻辑抽象。提取和重用跨组件的逻辑控制组件的渲染操作传递给组件的 props管理和注入状态。

2024-07-21 18:22:34 489

原创 【React】 HOC高阶组件介绍

高阶组件的概念类似于 JavaScript 中的高阶函数。它不修改原始组件,而是通过包装它并返回一个新组件来扩展组件的功能。逻辑复用(例如,处理身份验证、数据获取等)渲染劫持(通过控制组件的渲染逻辑)状态抽象和注入(管理和注入状态)props 操作(修改或增加传递给子组件的 props)

2024-07-21 18:16:11 255

原创 【react】在 React Router v6 中使用路由懒加载

【代码】【react】在 React Router v6 中使用路由懒加载。

2024-07-19 14:17:33 122

原创 【react】 可复用 form 表单校验逻辑封装

创建表单上下文并提供表单注册和校验功能。创建自定义钩子来管理单个表单字段的状态和校验。实现 TextInput 文本框的校验规则并在表单组件中使用。这样可以轻松扩展和复用表单校验逻辑。你可以根据自己的需求增加更多的校验规则和表单字段类型。

2024-07-19 01:06:21 185

原创 【React】实现类似vue的keepAlive组件的持久化

通过这个完整的案例,我们实现了一个类似于 Vue 的KeepAlive功能的组件,通过缓存组件的实例和其 childNodes,在重新渲染时通过读取childNodes恢复组件。通过这种方式,我们可以确保组件的实际 DOM 节点在卸载和重新挂载之间保持不变,从而实现了组件的持久化。

2024-07-16 01:28:02 323

原创 【React 组件封装】封装HTTPGet组件

通过封装HTTPGet组件,你可以在 React 应用中更方便地处理 HTTP GET 请求。安装和配置 axios:安装axios库并创建HTTPGet组件。封装 HTTP GET 请求逻辑:在HTTPGet组件中使用useEffect和axios来执行 HTTP GET 请求,并管理请求状态(dataloading和error使用 render props 模式:通过 render props 模式将请求的结果传递给子组件,以便在应用中使用。

2024-07-15 15:56:49 143

原创 【redux】redux-promise 使用案例

通过,你可以简化 Redux 中异步操作的处理。安装和配置中间件:在 Redux store 中应用中间件。创建返回 Promise 的 action creators:这些 action creators 返回一个 Promise,会处理这些 Promise 并在它们解析或拒绝时分发相应的 actions。编写相应的 reducer:处理由分发的 actions,更新应用的状态。在 React 组件中使用 Redux:使用和连接 Redux store,并触发异步 action。

2024-07-11 15:59:19 356

原创 【redux】redux-thunk 结合 Redux Toolkit 使用案例

通过使用,你可以轻松地处理 Redux 中的异步操作。安装和配置中间件:在 Redux store 中应用中间件。创建 slice 和 thunks:使用创建一个 slice,并定义处理异步操作的 thunk。在 React 组件中使用 Redux:使用和钩子来连接 Redux store,并触发异步请求。连接 Redux Provider:确保你的应用使用Provider组件来传递 Redux store。

2024-07-11 15:38:24 286

原创 【redux】redux-thunk 使用案例

通过使用,你可以轻松地处理 Redux 中的异步操作。安装和配置中间件:在 Redux store 中应用中间件。创建 actions 和 action creators:定义用于异步操作的 thunk action creators。创建 reducer:处理异步操作的状态变化。在 React 组件中使用 Redux:使用connect或者hook方法来连接 Redux store,并触发异步请求。连接 Redux Provider:确保你的应用使用Provider。

2024-07-11 15:12:24 317

原创 React 应用中实现操作按钮的权限控制

);

2024-07-09 15:10:07 161

原创 react 配合vite,利用 import.meta.glob,实现动态路由

);通过以上步骤,我们使用 Vite 作为构建工具,并利用 import.meta.glob 动态导入组件,通过后端接口获取授权菜单数据并在 React 应用中生成动态路由。这样可以根据用户的不同权限进行菜单和路由的动态生成和控制。根据具体需求,可以进一步优化和扩展权限逻辑。

2024-07-09 14:49:43 219

原创 react 通过后端接口实现路由授权

通过上述步骤,我们实现了通过后端接口获取用户权限并在 React 应用中进行动态路由权限控制。这使得权限管理更加灵活和动态,能够根据用户的不同权限进行路由的动态生成和控制。根据具体需求,可以进一步优化和扩展权限逻辑。

2024-07-05 19:22:51 292

原创 【React Hook】- useId

是 React 18 引入的一个新 Hook,用于在客户端和服务器端生成唯一的 ID。但是,这些库生成的 ID 在客户端和服务器端可能不一致,导致在 SSR 时出现 ID 冲突的问题。可以解决这个问题,因为它在客户端和服务器端生成相同的 ID。这使得我们可以在 SSR 时使用相同的 ID,而不会出现冲突。在客户端和服务器端生成相同的 ID,所以这个 ID 在 SSR 时不会出现冲突。是一个非常有用的 Hook,可以帮助我们在 SSR 时避免 ID 冲突的问题。只能在函数组件中使用,不能在类组件中使用。

2024-07-05 12:24:33 184

原创 【React Hook】- useCallback

是 React 提供的一个 Hook,用于优化函数组件的性能。它返回一个记忆化的回调函数,只有在其依赖项发生变化时才会重新创建。这样可以避免在每次渲染时都创建新的函数,从而减少不必要的重新渲染。

2024-07-05 12:23:30 275

原创 【React Hook】- useMemo

是 React 提供的一个 Hook,用于优化性能,避免不必要的计算。计算函数会在依赖数组中的值发生变化时重新计算,否则会返回上一次计算的结果。是 React 提供的一个 Hook,用于优化性能,避免不必要的计算。它可以接受一个计算函数和一个依赖数组,计算函数会在依赖数组中的值发生变化时重新计算,否则会返回上一次计算的结果。例如,可以缓存一些复杂的计算结果,然后在需要时直接使用,而不是每次都重新计算。如果需要缓存 DOM 元素,可以使用。只能优化计算密集型的函数,对于简单的计算或者不需要优化的函数,使用。

2024-07-05 12:22:52 138

原创 【React Hook】- useReducer

reducer 函数是一个纯函数,它接受当前的状态和动作类型,并返回新的状态。是 React 提供的一种状态管理方式,它可以将状态逻辑集中在一个地方,使得代码更加清晰和可维护。同时,它也可以避免因为直接修改状态而导致的不可预测的行为。的优点是它可以将状态逻辑集中在一个地方,使得代码更加清晰和可维护。是 React 提供的一种状态管理方式,它类似于 Redux 的 reducer,用于处理复杂的状态逻辑。更加复杂,需要编写更多的代码。同时,它也可能会导致性能问题,因为每次状态更新都会触发组件的重新渲染。

2024-07-05 12:22:18 200

原创 【React Hook】- useContext

是 React 提供的一个 Hook,用于在函数组件中访问上下文(Context)的值。上下文(Context)是 React 提供的一种机制,用于在组件树中共享数据,而不必通过每一层组件手动传递 props。是 React 提供的一个非常有用的 Hook,可以帮助我们在函数组件中方便地访问和响应上下文的变化。Hook 还可以接受一个可选的参数,即上下文对象的默认值。Hook 返回的值是上下文对象的当前值,当上下文对象的值发生变化时,组件一起使用,用于提供上下文的值。在上面的例子中,我们使用。

2024-07-05 12:21:45 155

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除