自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ApplicationRunner applicationRunner 是什么?

ApplicationRunner 是 Spring Boot 中的一个接口,用于在 Spring Boot 应用程序启动后执行特定的任务或逻辑。它允许开发者在应用程序完全启动后执行一些初始化操作,例如加载数据、调用外部服务或执行其他业务逻辑。

2024-07-16 12:15:47 288

原创 关于Spring容器的一些理解:如何将类交给Spring容器管理,Spring容器如何实现将类进行自动注册

如果没有显式地配置 @ComponentScan,Spring 默认不会进行自动组件扫描,因此标注了 @Component、@Service、@Repository 或 @Controller 等注解的类不会自动注册为bean。@Configuration 类中的@Bean 方法:如果你使用了Java配置类 (@Configuration 注解的类),可以在其中定义 @Bean 注解的方法,方法的返回值类型即为要注册为bean的类。

2024-07-04 12:06:20 372 1

原创 【eladmin项目拆解】注解@RequiredArgsConstructor详解

这个注解通常用于简化 Java 类的编写,特别是用于创建不可变对象时很有用。在使用 @RequiredArgsConstructor 注解后,Lombok 会为每个带有 @NonNull 注解的成员变量生成一个对应的参数,并在构造函数中进行初始化。这样可以减少重复的样板代码,提高代码的可读性和可维护性。这时候, @RequiredArgsConstructor 写在类上面可以代替@AutoWired注解,需要注意的是:在注入的时候需要用final定义,或者使用@notnull注解。

2024-04-22 11:15:39 340

原创 【eladmin项目拆解】登录功能实现源码

具体路径为:你的项目路径\eladmin\eladmin-common\src\main\java\me\zhengjie\utils\RedisUtils.java。项目作者把这个权限认证的功能写在了路径之下:你的项目路径\eladmin\eladmin-system\src\main\java\me\zhengjie\modules\security\security。接下来,我会拆解一下用户管理模块代码,然后基于用户模块,编写自己的文章管理模块代码。

2024-04-19 10:30:05 411

原创 【eladmin项目拆解】项目用到的技术栈介绍

后端:Spring Boot 2.6.4Mybatis-PlusJWTSpring SecurityRedis前端:vue

2024-04-17 22:41:20 221

原创 nvm设置淘宝镜像

前端安装完 node 后,最好设置下淘宝的镜像源,不建议使用 cnpm(可能会出现奇怪的问题)在 ~/.npmrc 加入下面内容,可以避免安装 node-sass 失败。配置后可通过下面方式来验证是否成功。.npmrc 文件位于。

2024-04-08 23:45:11 863

原创 Java是用什么语言写的?PHP呢?

PHP的内核是C语言编写的基础好效率高,可以用C语言开发高性能的扩展组件;PHP的核心包含了数量超过1000的内置函数,功能应有尽有很全面,开箱即用程序代码简洁;[26]PHP数组支持动态扩容,支持以数字、字符串或者混合键名的关联数组,能大幅提高开发效率;[27]PHP是一门弱类型语言,程序编译通过率高,相对其他强类型语言开发效率快;Sun公司研发人员根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言。

2024-03-26 09:05:25 556

原创 Java 如何针对不同类型判断一个对象是否为空

对于String类型的对象,除了判断是否为null外,还可以使用isEmpty()方法来判断字符串是否为空字符串。对于集合类型(如List、Set、Map等)的对象,可以通过isEmpty()方法来判断集合是否为空。以上是一些常用的方法来判断不同类型对象是否为空。在Java中,要判断一个对象是否为空,通常需要考虑不同类型的对象。对于数组类型的对象,可以通过判断数组的长度是否为0来判断数组是否为空。对于引用类型的对象,可以使用简单的判空操作来检查是否为null。

2024-03-26 08:43:45 237

原创 git checkout不同分支时,为啥会把当前分支的修改内容也带到新分支里面?

带有 -f 或 --force 选项切换分支: 使用git checkout -f 强制切换分支时,Git会无视未提交的改动,直接用目标分支的版本覆盖当前工作目录和暂存区的文件。这样就会导致原分支的未提交改动在新分支中“出现”。当你在Git中从一个分支切换到另一个分支时,如果没有先将当前分支未提交的改动暂存或提交,这些改动会被带到新分支。不带选项切换分支: 如果不加任何选项直接切换分支,并且当前有未提交的改动与目标分支的内容冲突,Git会拒绝切换并提示你先解决这些冲突或提交、暂存、恢复改动。

2024-03-15 14:36:36 996 1

原创 合并开发分支的修改代码到release分支

如果远程仓库没有该分支13437-yg-release,会自动创建分支13437-yg-release。

2024-01-15 10:35:21 477

原创 nvm 使用技巧

nvm install 18.19.0(指定版本号)

2024-01-11 15:56:10 477

原创 git拉取远程新分支到本地

git chekcout -b dev(本地分支名称) origin/dev(远程分支名称)

2024-01-11 15:50:03 442

原创 @Configuration 什么时候被执行

Configuration 是 Spring Framework 中用于定义配置类的注解。在 Spring 应用中,@Configuration 注解的类通常包含 @Bean 注解的方法,这些方法用于创建和初始化应用中的对象。简而言之,@Configuration 类在 Spring 应用上下文启动时被执行,以创建和配置应用中的 bean 和其他组件。这使得你可以以编程方式(而非传统的 XML 配置方式)来配置你的 Spring 应用。

2023-12-20 10:10:42 790

原创 maven打包项目,然后给其他项目引用

把一个项目打成jar包并引入其他项目中springboot引入其他项目jar包并实现对数据库的操作

2023-11-21 23:24:46 533

原创 执行npm install时老是安装不成功node-sass的原因和解决方案

4、所以就要针对性得修改你自己的版本(node 版本或者 node-sass版本),我们这里选择修改node-sass版本,因为其他依赖包要求node版本最低是14版本。3、看node的版本 和 node-sass的版本是否是相对应的,比如node-sass版本 是 4.12.+ ,那么node版本是 12的就可以,但不能超过 或低于12。1、首先看 package.json 中 ,node-sass和sass-loader是什么版本。一开始是:“node-sass”:“^4.12.0”。

2023-11-01 16:18:56 2295

原创 注解使用说明--@RequestMapping

上述代码中的 @GetMapping(“/users/{id}”) 表示处理 GET 请求,并且请求路径是 “/api/users/{id}”,其中的 {id} 是一个路径变量,可以在方法参数中使用 @PathVariable 注解来获取。通过 @RequestMapping 注解,我们可以实现灵活的请求映射,将不同的请求分发给对应的处理方法进行处理,从而构建出一个完整的 Web 应用程序。在方法级别上,@RequestMapping 可以指定具体的请求路径、请求方法、请求参数等条件。

2023-11-01 12:57:05 79

原创 注解 @TableField 的使用笔记

在使用 MyBatis-Plus 进行数据库操作时,我们可以通过 @TableField 注解来指定实体类中的字段与数据库表中的字段之间的映射关系。@TableId注解:MyBatisPlus在实现CRUD默认会将Id作为主键,在插入数据时,使用雪花算法生成Id,如果主键不叫Id则添加功能会失败。@TableField 是一个注解,用于标识实体类中的字段映射关系。上述代码中,userName 字段与数据库表字段 user_name 进行映射,而 age 字段并不是数据库表字段。

2023-10-24 12:38:29 2235

原创 Java getBytes()函数学习

getBytes() 方法有多个重载形式,可以根据需要指定字符集来进行转换。如果不指定字符集,则会使用默认的字符集。getBytes() 是Java中String类的一个方法,它可以将字符串转换为字节数组。

2023-10-20 16:38:24 1337

原创 @ServletComponentScan注解的作用

在SpringBootApplication上使用@ServletComponentScan注解后,Servlet(控制器)、Filter(过滤器)、Listener(监听器)可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册到Spring容器中,无需其他代码。

2023-10-20 10:29:31 303

原创 Java中的过滤器和拦截器的区别

过滤器Filter基于Servlet实现,过滤器的主要应用场景是对字符编码、跨域等问题进行过滤。Servlet的工作原理是拦截配置好的客户端请求,然后对Request和Response进行处理。Filter过滤器随着web应用的启动而启动,只初始化一次。Filter的使用比较简单,继承Filter 接口,实现对应的init、doFilter以及destroy方法即可。init() :该方法在容器启动初始化过滤器时被调用,它在 Filter 的整个生命周期只会被调用一次。

2023-10-20 10:04:25 39

原创 native方法是什么

这些native方法可以使Java程序能够直接访问底层系统资源或使用特定的硬件特性,从而扩展Java程序的功能。同时,在使用native方法时也需要注意安全和可维护性问题。使用native方法可以为Java程序提供直接访问底层系统资源、使用硬件特性或调用已存在的本地库等功能。Java提供了很多常用的native方法,这些方法通常是由Java的运行时库实现的。在Java中,native方法是指使用其他编程语言(如C或C++)编写的方法,它可以在Java程序中被调用。

2023-10-11 23:31:05 325

原创 解答:方法中创建的对象不都是局部变量,那不就是说这些对象都存放虚拟机栈中,但是所有对象不是都在方法中创建的,那什么对象实例是放在堆中的呢?

这个对象的实例是存放在堆内存中的,而obj只是一个引用,它存放在栈帧的局部变量表中。当在方法中创建一个新的对象时,实际上会在堆内存中分配一块存储空间作为对象实例,并且在局部变量表中创建一个引用指向这个对象。需要注意的是,方法结束后,该方法中创建的局部变量和引用将会被销毁,但是在堆内存中分配的对象实例仍然存在,直到没有任何引用指向它,被垃圾回收机制回收。因此,对象实例是存放在堆内存中的,而方法中创建的局部变量和引用只是指向这些对象的一个方式。在Java中,对象的实例是存放在堆内存中的。

2023-10-11 20:42:27 44

原创 为什么说Java是编译与解释并存的语言

JIT编译器通常使用基于探测技术的优化方法,例如使用Profiling(性能剖析)技术来监视和分析程序的运行状况,找出热点代码(频繁被执行的代码块),然后针对热点代码进行编译优化。这样,经过JIT编译后的代码在再次执行时,无需再经过解释器解释执行,而是直接执行编译后的机器码,从而提高了程序的执行速度。JIT编译器在Java虚拟机(JVM)中扮演着重要角色,Java程序首先通过javac编译器将源代码编译为字节码文件,然后在运行时由JIT编译器将字节码转换为机器码,以提高Java程序的执行效率。

2023-10-10 11:44:57 71

原创 Java 多态

多态指的是同个接口,使用不同实例从而执行不同的操作。多态指的是同个行为具有多个不同表现形式。

2023-10-08 11:03:50 19

原创 Spring Boot 整合 Redis

当然,这只是一个简单的示例,你还可以根据具体需求来使用 Redis 提供的其他功能,如 Hash、List、Set 等数据结构的操作。可以使用 Spring Boot 提供的 spring-boot-starter-data-redis starter,它会自动配置 Redis 相关的依赖和bean。3、使用 RedisTemplate 进行操作:通过注入 RedisTemplate,你可以在代码中使用它来执行对 Redis 的操作。

2023-09-22 18:14:17 130

原创 注解说明--@RestController

使用 @RestController 注解标记的类,通常用于处理 HTTP 请求,并返回 JSON 或其他格式的数据作为响应。@RestController 简化了编写 RESTful 服务的代码,使得开发人员可以更加方便地创建和维护基于 HTTP 的 API 接口。@RestController 是 Spring 框架中的一个注解,用于标记一个类为 RESTful 风格的控制器。它结合了 @Controller 和 @ResponseBody 两个注解的功能。

2023-09-22 18:01:11 982

原创 Spring Cloud Gateway 过滤器 StripPrefix=1 的作用

如果你的请求路径中有多个前缀路径需要去除,可以设置 StripPrefix=2 或更大的值。另外,如果你希望保留原始路径,可以不配置 StripPrefix 过滤器或者将其设置为 StripPrefix=0。当配置了 StripPrefix=1 过滤器后,如果请求的路径中存在前缀路径,该过滤器将会去除指定数量的前缀路径。当收到形如 /api/users 的请求时,StripPrefix=1 将会去除 /api 前缀,将最终的请求路径转发到 http://example.com/users。

2023-09-22 00:21:33 4293

原创 蘑菇博客架构图-精简版

2023-09-21 16:55:02 60

原创 蘑菇博客部署-安装 vue_mogu_admin 项目的依赖出错:While resolving: vue-admin-template@3.8.0 Found: html-webpack-plug

根据错误信息,您的项目依赖于 vue-admin-template@3.8.0,而该版本要求使用 html-webpack-plugin 的对等依赖版本 ^3.0.0。然而,在解析依赖树时,发现了一个开发环境依赖 html-webpack-plugin@4.0.0-alpha,它与要求的对等依赖版本不匹配,因此导致解析失败。2、更新依赖项版本:打开项目的 package.json 文件,找到名为 html-webpack-plugin 的依赖项,并将其版本号从。

2023-09-21 02:50:23 506

原创 蘑菇博客部署-安装 vue_mogu_admin 项目的依赖出错:‘webpack-dev-server‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

webpack-dev-server 未正确安装:请确保您已经在项目中正确安装了 webpack-dev-server。

2023-09-21 02:44:18 31

原创 蘑菇博客部署-SpringBoot启动报错:Command line is too long

1.修改运行配置Configurations,将默认的Shorten command line的值user-local default 改为 JAR mainifest 或者 classpath file。2、在项目的.idea/workspace.xml文件中,找到。这种办法每次需要对每个类单独设置。这种方式一次设置就行。

2023-09-21 02:40:55 432

原创 蘑菇博客部署-SpringBoot启动报错:GlobalConfigUtils setMetaData Fail

解决办法: 在数据库url后面添加allowPublicKeyRetrieval=true。

2023-09-21 02:29:50 256

原创 蘑菇博客部署-SpringBoot启动报错:Too many connections

1、找到nacos对应的微服务配置,数据库本身最大连接数限制。

2023-09-21 02:24:03 593

原创 蘑菇博客部署-SpringBoot启动错误:Could not resolve placeholder ‘spring.datasource.url‘ in value “${spring...

解决方案:项目在配置更改后要对maven进行clean,install的操作,清除以重新编译项目。

2023-09-21 02:09:11 810

原创 java -jar **.jar 和 Spring Boot 启动application启动类文件的区别

SpringBoot项目其实就是web项目来的,它主要是为web程序服务的,他的特点就是,一旦运行,除非我们手动的关闭,不然是不会自动关闭的,也就是SpringBoot程序是没有什么周期,基于这个特点,非常适合web项目,但是有时我们也不仅仅用来写web项目,如果我们的项目需求是长期运行,不停止的话,用SpringBoot来写是非常合适的,例如一些每天执行的定时任务等程序。在执行命令时,java -jar会自动加载并运行可执行 jar 包中的主类,并启动 Spring Boot 应用程序的运行环境。

2023-09-20 11:34:07 292 1

原创 VO,BO,PO,DO,DTO,DAO的区别

最后,让我们再说说实际应用这几个概念很完整,我们在用的时候是必须按这个来做吗?当然不是的,系统和系统的复杂度不同,协作水平不同,完全没有必要教条主义,这些概念全上上哪些概念,省哪些,我给一些实际建议1,PO这个没法省,不管叫PO还是Entity,怎么着都得有2,一些工具类的系统和一些业务不是很复杂的系统DTO是可以和BO合并成一个,当业务扩展的时候注意拆分就行3,VO是可以第一个优化掉的,展示业务不复杂的可以压根儿不要,直接用DTO。

2023-09-19 16:00:41 123

原创 如何从0到1学习一个Java项目

项目功能介绍项目架构项目技术栈项目模块划分如何部署代码(将项目跑起来的教程介绍)如果遇到一些需要你去调试修复bug才可以正常跑起来的项目,请尽快脱坑,更换另外的项目。没必要为这些项目浪费自己的时间。

2023-09-19 14:54:05 186

原创 设计模式-策略模式详解

在策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改客户端代码。

2023-09-14 15:43:33 26 1

原创 设计模式-单例模式详解

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。构造函数是私有的。getInstance() 方法中需要使用同步锁 synchronized (Singleton.class) 防止多线程同时进入造成 instance 被多次实例化。

2023-09-14 14:00:16 39 1

原创 设计模式-抽象工厂详解

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。使用 FactoryProducer 来获取 AbstractFactory,通过传递类型信息来获取实体类的对象。创建扩展了 AbstractFactory 的工厂类,基于给定的信息生成实体类的对象。创建一个工厂创造器/生成器类,通过传递形状或颜色信息来获取工厂。为 Color 和 Shape 对象创建抽象类来获取工厂。为形状创建一个接口。为颜色创建一个接口。

2023-09-14 13:34:10 73 1

空空如也

空空如也

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

TA关注的人

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