自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java的Stream流

Stream是一种高级迭代器,用于对数据源进行函数式操作。filter用于条件筛选sorted支持自然排序和自定义比较器limit和skip控制元素数量distinct依赖equals和hashCode实现去重map实现元素转换可合并多个流。

2025-12-18 17:14:09 666

原创 Java线程安全和同步

小明和小红是一对夫妻,他们有一个共同的账户,有余额十万块钱,有一天他们各自同时取了十万块钱。那谁能成功取到这十万呢?

2025-12-18 13:12:26 283

原创 线程的常用方法

不能手动设置为守护线程后再启动(setDaemon() 必须在 start() 前调用)子线程:"Thread-0", "Thread-1", ...interrupted():检查并清除中断标志(静态方法)isInterrupted():检查中断标志。可以在任何地方调用,获取当前执行环境的线程。不会释放锁:如果持有锁,休眠期间仍然持有。当所有用户线程结束时,守护线程自动结束。interrupt():设置中断标志。静态方法:让当前线程休眠指定时间。主线程结束后,守护线程会自动结束。

2025-12-17 23:04:50 706

原创 Java线程的三种创建方式

Callable实现类 → FutureTask包装 → Thread包装 → start()启动 → get()获取结果。start() 会启动新线程,同时调用 run() 方法。直接调用 run() 只会普通方法调用,不会创建新线程。启动方式:创建对象后调用 start() 方法。run() 方法没有返回值,不能抛出检查异常。阻塞获取:get() 方法会等待线程执行完成。重写方法:必须实现 call() 方法。重写方法:必须重写 run() 方法。重写方法:必须实现 run() 方法。

2025-12-17 22:21:16 309

原创 SpringAOP的介绍和入门

什么是AOP的技术?在软件业,AOP为AspectOrientedProgramming的缩写,意为:面向切面编程,AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构AOP最早由AOP联盟的组织提出的,制定了一套规范.Spring将AOP思想引入到框架中,必须遵守AOP联盟的规范SpringAOP是通过预编译方式或者运行期动态代理实现程序功能的统一维护的一种技术AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。

2025-12-15 15:12:41 1007

原创 SpringIOC的注解开发

我们在实现类上面加了@Component注解,它的作用是把当前类使用IOC容器进行管理,value指定Bean的名称,如果没有指定名称,默认使用当前类名userServiceImpl。纯注解的方式是微服务架构开发的主要方式,所以也是非常的重要。但是需要编写配置类。@Import注解Spring的配置文件可以分成多个配置的,编写多个配置类。@Bean注解只能写在方法上,表明使用此方法创建一个对象,对象创建完成保 存到IOC容器中。@Qualifier和@Autowired一起使用,强制使用名称注入 ​。

2025-12-13 22:46:41 1000

原创 Spring的DI依赖注入(配置文件方式)

测试代码首先读取配置文件(第一行代码),获取到了orderServiceImpl这个Bean(第二行代码),最后调用对象的saveOrder方法。通过无参构造方法创建OrderServiceImpl实例,再通过setOrderDao、setMsg和setAge方法来获取值,也就是依赖注入。DI:DependencyInjection,依赖注入,在Spring框架负责创建Bean对象时, 动态的将依赖对象注入到Bean组件中。然后创建OrderServiceImpl。新建CollectionBean类。

2025-12-12 22:40:35 703

原创 Spring的Bean

在 Spring 中,构成应用程序主干并由 Spring IoC 容器管理的对象称为 bean。bean 是由Spring IoC 容器实例化、组装和管理的对象。

2025-12-12 16:24:18 696

原创 Spring框架的介绍和IoC入门

Spring 是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的 松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由RodJohnson创建。简单来说,Spring 是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

2025-12-12 15:45:09 943

原创 SpringBeanFactory

XmlBeanDefinitionReader:用于读取 XML 格式的 Bean 配置文件,并将配置信息加载到 Bean 工厂中。DefaultListableBeanFactory:Spring 的核心 Bean 工厂,负责创建和管理 Bean 实例。通过读取器加载bean.xml配置,将userDao和userService的 Bean 定义注册到工厂中。创建UserService和它的实现类UserServiceImpl。从工厂中获取 id 为userService的 Bean 实例。

2025-12-11 20:25:32 392

原创 SpringBoot+Vue项目创建

最近学到了Vue,但是刚开始对于项目的创建一头雾水,所以写了这个笔记,以免在之后的学习无从下手。

2025-12-08 23:04:52 387

原创 vue目录文件夹的作用

运行npm run build:prod时,会产生/dist目录(生产环境打包结果),然后运行npm run preview会执行 build/index.js,启动一个本地服务器来预览 dist/ 目录中的内容。如:node_modules/, dist/, .env.local 等。.eslintignore - 忽略检查的文件/目录。.env.development - 开发环境配置。.env.production - 生产环境配置。.env.staging - 预发布环境配置。

2025-12-08 15:17:32 846

原创 Node.js的安装

在node.js官网选择安装包我用的是16版本。

2025-12-08 14:02:56 223

原创 MybatisPlus配置多数据源

mybatis_plus表当中有productmybatis_plus1表中有user。

2025-11-30 19:11:05 211

原创 MybatisPlus的代码生成器

AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。代码生成器 | MyBatis-Plus。

2025-11-30 16:46:39 288

原创 MyBatisPlus乐观锁和悲观锁

一件商品,成本价是80元,售价是100元。老板先是通知小李,说你去把商品价格增加50元。小 李正在玩游戏,耽搁了一个小时。正好一个小时后,老板觉得商品价格增加到150元,价格太高,可能会影响销量。又通知小王,你把商品价格降低30元。此时,小李和小王同时操作商品后台系统。小李操作的时候,系统先取出商品价格100元;小王 也在操作,取出的商品价格也是100元。小李将价格加了50元,并将100+50=150元存入了数据 库;小王将商品减了30元,并将100-30=70元存入了数据库。

2025-11-30 12:55:23 764

原创 MyBatisPlus条件构造器

Wrapper : 条件构造抽象类,最顶端父类AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件QueryWrapper : 查询条件封装UpdateWrapper : Update 条件封装AbstractLambdaWrapper : 使用Lambda 语法LambdaQueryWrapper :用于Lambda语法使用的查询WrapperLambdaUpdateWrapper : Lambda 更新封装Wrapper2、

2025-11-30 12:40:19 258

原创 MybatisPlus常用注解

TableName我们在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在 Mapper接口继承BaseMapper时,设置了泛型User,而操作的表为user表 所以MyBatis-Plus在确定操作的表时,由BaseMapper的泛型决定,即实体类型决定,且默认操作的表名和实体类型的类名一致如果我们的实体类类名和我们要操作的表面不一致会发生什么?

2025-11-29 23:10:57 669

原创 MyBatis-Plus当中BaseMapper接口的增删查改操作

入门案例当中的“查询所有”调用的是BaseMapper当中的selectList,接下来我们从增删查改来了解BaseMapper接口当中的方法。

2025-11-23 22:39:00 677

原创 Mybatis-Plus入门

是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。可以查看官方文档。

2025-11-23 15:33:22 273

原创 SpringBoot的内嵌和外置tomcat

setUrlPatterns(Arrays.asList("/hello", "/myServlet")):指定拦截路径。创建 ServletRegistrationBean,将Servlet映射到 /myServlet 路径。效果:访问 http://localhost:8080/myServlet 会调用 MyServlet。效果:访问 /hello 或 /myServlet 时,会先经过 MyFilter。访问地址变为:http://localhost:8081/tx。包:启动服务器,服务器启动。

2025-11-18 16:35:44 939

原创 Springboot扩展springmvc

在实际开发中springboot并非完全自动化,很多跟业务相关我们需要自己扩展,springboot给我提供了接口。我们可以来通过实现WebMvcConfigurer接口来扩展。1.

2025-11-18 15:28:14 793

原创 SpringBoot对SpringMVC的整合

在Springboot的主启动类当中,有@SpringBootApplication注解,里面有@ComponentScan注解,在之前自动装配的时候说过:@ComponentScan 会扫描主启动类所在包及其子包,包括:@Controller,@Service,@Repository,@Component等其他Spring组件。在springboot项目当中,中央转发器被springboot自动接管,不再需要我们在web.xml中配置。如图:(注意不能在resource目录下创建,后续debug时会说)

2025-11-17 22:08:54 897

原创 thymeleaf语法

Thymeleaf 是一个现代化的服务器端 Java 模板引擎,主要用于构建 Web 应用程序中的视图层。它与 Spring Boot 完美集成,支持 HTML5,并且允许你在浏览器中直接查看静态原型,同时在服务器端渲染动态数据。

2025-11-16 17:52:11 770

原创 Shell的基本语法

name="张三" # 定义变量,等号两边不能有空格age=20echo $name # 使用变量:$变量名echo ${name} # 推荐使用大括号。

2025-11-07 17:12:48 172

原创 使用docker-compose启动springboot

因为我们已经在docker-compose里面进行了挂载,所以Dockerfile里面的ADD指令可以去掉。注意Dockfile尽量和docker-compose在同一级目录下,便于管理。运行前记得把有关的在运行的容器删除,否则是删不了镜像的。在test目录下创建脚本vi build.sh。

2025-11-07 17:08:48 176 1

原创 CentOS7使用Docker部署SpringBoot项目

把openjdk8的镜像包传到服务器中然后使用docker load -i jdk.tar命令装载镜像装载成功后运行docker run openjdk:8然后可以用docker ps -a查看所有在运行的容器。

2025-11-06 12:56:59 332

原创 SpringBoot配置文件注入值

想让person.properties生效的话,要先把application.yaml文件中有关person的配置去掉,因为application.yaml读取优先级更高,想让Spring的配置文件生效,我们可以在配置类上使用@ImportResource注解。不会转义字符串里面的特殊字符;只要是左对齐的一列数据,都是同一个层级的。会转义特殊字符,特殊字符最终只是一个普通的字符串数据。:在下一行来写对象的属性和值的关系;字面量:普通的值(数字,字符串,布尔)高优先级的配置会覆盖低优先级的配置。

2025-11-04 14:26:42 895

原创 CentOS7安装Docker和Mysql

主机用服务器的ip,端口写容器映射到主机的端口23306(这里的主机指的是服务器也就是我们的虚拟机CentOS7,不是我们本地的电脑),然后用户名和密码使用我们刚才设置的test和123456,也可以使用testuser和testpass。可以看到mysql:tag这样的属性,和maven有些类似,这个是mysql的镜像坐标:mysql是软件名称,tag是它的版本。这种方式的成功率不高,因为docker的默认源在国外,通常会因为网络问题安装失败。端口映射:将主机的23306端口映射到容器的3306端口。

2025-11-03 21:59:18 591

原创 CentOS7连接shell工具

进入到CentOS7桌面,右击桌面,打开终端:输入ifconfig,我们看到ens33部分没有显示inet,可能是虚拟机网络设置或者是配置文件的问题。

2025-11-03 21:10:12 282

原创 VMware安装CentOS7操作系统

随后自定义硬件--->映像文件,找到我们下载的centOS7.iso文件。选择第一个“Install CentOS7”配置配置项:选择GNOME桌面和自动分区。编辑名称和虚拟机所在位置。配置好root密码和用户。随后等待安装完成即可。

2025-11-02 21:56:23 146

原创 SpringBoot配置的探究

SpringBootConfiguration:Spring Boot的配置类;标注在某个类上,表示这是一个的配置类;@Configuration:配置类上来标注这个注解;配置类-----配置文件;配置类也是容器中的一个组件;@EnableAutoConfiguration:开启自动配置功能;以前我们需要配置的东西,Spring Boot帮我们自动配置;告诉SpringBoot开启自动配置功能;这样自动配置才能生效;@AutoConfigurationPackage:自动配置包。

2025-10-31 15:14:54 774

原创 回头看SSM项目的创建

以mavenJavaweb项目为例。

2025-10-28 21:52:52 613

原创 SpringBoot简介和入门

简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;优点:快速创建独立运行的spring项目以及与主流框架集成使用嵌入式的Servlet容器,应用无需打成war包,内嵌TomcatStarters自动依赖和版本控制大量的自动装配,简化开发,也可以修改默认值无需配置XML无代码生成开箱即用准生产环境的运行时应用监控与云计算的天然集成。

2025-10-26 21:31:19 1045

原创 Git仓库推送到GitHub

这里的Http方式在我前面Gitee的文章中有过介绍:Git推送本地仓库到远程-优快云博客我们这里讲述SSH方式:SSH:这里又分两种,一种是仓库公钥,另一种是账户公钥,两个的作用域不同我们先创建好TestGitHub文件夹,调出git bash。

2025-10-20 20:43:04 547

原创 Git的小组协作

组长在gitee中创建好仓库:然后在原有的小组项目架子的文件夹中open git bash here:随后的操作和之前的一样:(1)首先初始化仓库git init(2)然后与远程仓库连接:git remote add origin 你的仓库路径(3)设置用户名和邮箱git config --local user.name "你的名字"git config --local user.mail "你的邮箱"(4)拉取模板文件 git pull origin master。

2025-10-20 19:56:17 304

原创 idea整合Git

首先在gitee中创建远程仓库随后填写好这些设置:创建好,随后复制仓库的路径:创建一个TestGitIdea文件夹,随后open git bash here,初始化仓库和进行连接随后设置好用户名和邮箱:然后拉取远程仓库的模板文件,再ll -a检查一下:此时模板文件就被拉取到了。先打开刚才的文件夹(我用的是2021.1.1版本):然后找到设置:搜索git,在下图所示的Path to Git executable中找到自己安装的git,并且把bin目录下的git.exe路径复制到这里。出现Git版本字样就说明成

2025-10-20 19:12:16 433

原创 Git标签

标签与分支无关,仅标记特定提交。(lightweight)和。

2025-10-19 16:14:49 266

原创 Git的多人协作

首先创建GitTest2文件夹修改用户名和邮箱。

2025-10-18 20:06:21 346

原创 Git推送本地仓库到远程

新建一个文件夹GitTest1。

2025-10-18 17:16:53 2506

空空如也

空空如也

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

TA关注的人

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