java开发
文章平均质量分 78
CodeCharm——CC
没有人不可替代,只是时间问题。
展开
-
【Spring】DynamicDataSourceHolder 动态数据源切换
*** 设置数据源* @param dataSourceKey 数据源标识*//*** 获取数据源* @return 数据源标识*//*** 清除数据源*/在Spring配置中定义数据源,并将动态数据源配置为主数据源。import org。原创 2024-05-27 15:44:12 · 944 阅读 · 0 评论 -
【idea】idea 中 git 分支多个提交合并一个提交到新的分支
- `commit`:命令用于将你的代码变更保存到**本地代码仓库**中,它创建了一个新的提交(commit)记录,记录了代码的变更内容以及相关的提交信息(如作者、时间、提交说明等)。- `push`:命令用于将本地仓库中的代码推送(上传)到**远程代码仓库**,将你的代码变更分享给其他开发者或者备份到远程服务器。- `cherry pick`:命令用于从一个分支中**选择性地合并某个提交(commit)到当前分支**,它允许你只合并需要的提交而不是整个分支的变更。- `squash`: 用于将**多原创 2024-04-25 16:21:24 · 5809 阅读 · 2 评论 -
【idea】一个新的项目代码,从零上传到Gitee仓库
首先我们在 file -》setting -》Version Control -》Gitee 里增加 Gitee 用户,这个地方要输入gitee的账号和密码,用的是邮箱。配置完成之后,就是要把我们的代码分享到 Gitee 云端了。在 VSC 菜单中找到 Share Project on Gitee ,分享。再去远端 https://gitee.com/ 检查一下。仓库创建完成就会让我们 add 代码到仓库里。会出现让我们填写远端仓库的名称,以及描述。原创 2024-04-18 19:14:25 · 216 阅读 · 0 评论 -
【软考】23种设计模式详解,记忆方式,并举例说明
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式是工厂方法模式的一种扩展,它用于处理多维度的大规模产品族,而不是单一产品的创建问题。抽象工厂模式可以想象成一个大型工厂,这个大工厂里有好几个小工厂,每个小工厂负责生产一系列相关的产品。这种设计模式的核心就是帮助我们在不直接指定具体类的情况下创建一系列相关或依赖对象。原创 2024-04-07 16:31:31 · 3014 阅读 · 0 评论 -
【Spring】Spring框架中的一个核心接口ApplicationContext 简介,以及入口 Run() 的源码分析
ApplicationContext 是Spring框架中的一个核心接口,它是Spring IoC容器的实现之一,用于管理和组织应用程序中的各种Bean,同时提供了一系列功能来支持依赖注入、AOP等特性。简单来说,ApplicationContext 是一个大型的、高级的Spring IoC容器,它扩展了BeanFactory接口,提供了更多的功能和特性,比如事件传播、国际化支持、资源加载、生命周期回调等。原创 2024-03-26 17:13:25 · 1386 阅读 · 1 评论 -
【事务】开发用到的事务,TransactionDefinition实例详解,事务的传播机制
是Spring框架中定义事务属性的接口。它提供了定义事务的各种属性和行为的方法,包括事务的隔离级别、传播行为、超时设置等。在Spring中,通过TransactionDefinition可以灵活地配置事务的行为,以满足不同业务场景的需求。原创 2024-03-22 18:09:58 · 1563 阅读 · 0 评论 -
【JAVA】实体类继承关系,强制转换的例子
在方法m1中传递的参数是类型为B的对象(b),而b实际上是类A的对象,因为类A继承了公共类B。由于私有属性tt只能在类A内部访问,您需要通过类A提供的公共方法来间接获取私有属性tt的值。在Java中,如果尝试将一个对象强制转换为其不是实际类型的父类或子类,或者尝试将一个对象转换为与其不兼容的接口类型,就会抛出。如果类A和类B之间存在继承或实现关系,但强制转换的方向不正确(例如,将类B转换为类A而不是将类A转换为类B),也会导致ClassCastException异常。接收的参数类型为B的对象。原创 2024-03-20 15:02:47 · 504 阅读 · 0 评论 -
【MybatisPlus】QueryWrapper、UpdateWrappe、LambdaQueryWrapper、LambdaUpdateWrapper
和都是 MyBatis-Plus 框架中用于构建条件的工具类,它们之间的关系是继承关系。其中和是基于普通的对象属性名来构建条件的,而和则是基于 Lambda 表达式来构建条件的。下面是AbstractWrapper中的方法。原创 2024-03-06 16:57:24 · 2837 阅读 · 0 评论 -
【MybatisPlus】BaseMapper详解,举例说明
MyBatis-Plus 的核心类 BaseMapper 主要是用于提供基本的 CRUD(创建、读取、更新、删除)操作的接口定义。它是 MyBatis-Plus 框架中的一个重要组成部分,可以大大简化基于 MyBatis 的数据访问层代码的编写。insert:插入一条记录到数据库中。deleteById:根据主键 ID 删除一条记录。updateById:根据主键 ID 更新一条记录。selectById:根据主键 ID 查询一条记录。selectList:查询所有符合条件的记录列表。原创 2024-03-06 15:56:26 · 12599 阅读 · 0 评论 -
【架构】五大常见架构模式,集中式架构、分布式架构、面向服务的系统架构、微服务架构等区别详解
分布式架构比集中式架构更加模块化,允许相对容易地添加其他服务器,并能为特定用户添加具有特定功能的客户端,从而提供更大的灵活性和多中心化的组织治理机制,这有可能令架构决策与组织治理目标更协调。微服务架构可以看作是面向服务架构的一种实现方式,它强调了**更小、更自治**的服务单元,并且通常与现代的云原生技术结合使用,以支持敏捷开发和部署。原创 2024-03-04 14:29:12 · 2759 阅读 · 0 评论 -
【日志】MDC 一个Java 项目中用于日志跟踪的工具
MDC 是一个在 Java 项目中用于日志跟踪的工具,它允许你在多线程环境下关联和传递特定的上下文信息。原创 2024-02-18 14:22:58 · 1935 阅读 · 0 评论 -
【MyBatis】MyBatis是什么?作用?怎么实现?
要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。设置好的属性可以在整个配置文件中用来替换需要动态配置的属性值。原创 2024-02-01 20:05:38 · 943 阅读 · 0 评论 -
【Spring】Spring 可以将接口所实现的类都注入到接口类型的List、Map中
Spring 提供了依赖注入的功能,可以通过注解或者配置来实现将接口的实现类注入到接口类型的 List、Map 中。@Autowired是重点!除此之外,也可以代替他的功能。参考: 如果你的项目是一个Spring应用程序,并且使用了组件扫描,Spring容器会自动扫描并创建实现了接口的类的实例,并将它们注册为Bean。然后,你可以使用@Autowired或其他依赖注入方式,将这些Bean注入到MyService类中的列表中。这样,你无需手动初始化,Spring会帮助你管理这些实现类的对象。原创 2024-01-22 15:30:52 · 999 阅读 · 0 评论 -
【消息队列】RocketMQ 并发消费和顺序消费
在 RocketMQ 中,消息的消费模式包括并发消费和顺序消费,它们分别适用于不同的业务场景。原创 2024-01-19 17:52:35 · 1592 阅读 · 0 评论 -
【消息队列】RocketMQ 生产和消费中的集群模式和广播模式
在消息队列系统中,生产者和消费者的模式通常包括集群模式和广播模式。这两种模式分别用于不同的场景,具有不同的特点和优势。原创 2024-01-19 17:21:48 · 1136 阅读 · 0 评论 -
【消息队列】MQ进阶篇之 RocketMQ 的实践
在使用 RocketMQ 发送消息的项目中,通常的做法是在项目启动时初始化 RocketMQ 的生产者(Producer),并在需要发送消息时使用该生产者发送消息。这样可以保证在整个项目运行期间都有可用的生产者实例,并避免在每次发送消息时都初始化生产者,提高效率。另外,RocketMQ 的生产者是线程安全的,可以在整个应用程序的生命周期内重复使用。通过这样的方式,生产者在项目启动时初始化,一直处于可用状态,而不需要每次发送消息都重新初始化。: 在需要发送消息的地方,使用初始化好的生产者发送消息。原创 2024-01-18 11:16:50 · 1190 阅读 · 0 评论 -
【消息队列】RocketMQ 消息的 topic 和 tag 区别以及使用方式
在 RocketMQ 中,消息的 Topic 和 Tag 是用于标识和分类消息的两个关键属性。它们有不同的作用和使用方式。原创 2024-01-18 10:15:03 · 3281 阅读 · 0 评论 -
代理服务器(Broker)的Master-Slave 架构
举例而言,Apache Kafka 是一种常见的消息队列系统,它采用了类似于 Master-Slave 架构的设计,其中 Kafka Broker 可以配置成一个或多个副本(Replica)。这样的设计有助于提高 Kafka 的可用性和容错性。在消息队列系统中,代理服务器(Broker)的架构可以采用 Master-Slave 架构,但并不是所有消息队列系统都使用这种架构。总体而言,Broker 的架构设计取决于具体的消息队列系统,可能包括 Master-Slave 架构或其他形式的分布式架构。原创 2024-01-17 17:33:51 · 526 阅读 · 0 评论 -
【消息队列】MQ进阶篇之 RocketMQ 的理论,主打一个通俗易懂
总体来说,生产者制作菜品,通过前台(NameServer)找到餐厅桌子(Broker),将菜品(消息)送到桌子上(队列)。消费者通过前台找到自己的桌子,享受美味的菜品(处理消息)。而Master和Slave的关系保证了即使有问题,餐厅也能继续提供服务。原创 2024-01-17 17:32:12 · 1404 阅读 · 0 评论 -
【消息队列】MQ 是什么?为什么用MQ?怎么实现MQ?
消息队列(MQ) 是一种在分布式系统中,用于在应用程序之间传递消息的通信机制。消息队列的实现可以是基于代理的,也可以是基于发布/订阅模式的。选择适当的消息队列系统和模型取决于应用程序的需求。开源的消息中间件,实现了Java Message Service(JMS)。内存数据库,可以用作消息队列的代替品,支持发布/订阅模式。开源的消息队列系统,实现了高级消息队列协议(AMQP)。分布式流处理平台,支持高吞吐量的分布式消息系统。亚马逊提供的托管消息队列服务,适用于云环境。持续更新,关注,后续更精彩哦~原创 2024-01-16 18:29:30 · 1677 阅读 · 0 评论 -
【设计模式】单例模式、工厂方法模式、抽象工厂模式
场景: 创建不同操作系统下的界面元素,如按钮和文本框。@Override// Windows 按钮渲染逻辑@Override// MacOS 按钮渲染逻辑@Override@Override这些例子演示了设计模式在具体场景中的应用,每个模式都解决了特定问题,并提供了一种结构化和灵活的解决方案。在实际开发中,根据具体情况选择适当的设计模式可以提高代码的质量和可维护性。原创 2024-01-12 17:30:35 · 658 阅读 · 0 评论 -
【注解】@RestController、@GetMapping、@PostMapping、@RequestMapping等RESTful风格的Web服务的注解
用于获取请求的查询参数。用于获取请求路径中的变量。用于获取请求体中的数据。这三个注解通常根据请求的类型和参数位置来选择使用。根据具体的业务需求,你可以选择其中的一个或多个来获取请求参数。原创 2024-01-11 16:54:19 · 1282 阅读 · 0 评论 -
【Spring Boot】项目端口号冲突解决方法,一步到位
如图添加端口号设置代码,改一个不重复的端口号,启动项目即可成功。此处要注意的是,Spring Boot 可以用不同类型的配置文件,其语法也不相同,详情请参考。持续更新ing,动动小手,点点关注,后续更精彩!找到要启动的项目的配置文件。原创 2024-01-11 15:36:14 · 880 阅读 · 0 评论 -
【java】Error:java: 无效的源发行版: 12,只需三步
运行项目报错 “Error:java: 无效的源发行版: 12”持续更新,动动小手,点点关注,后续更精彩哦!原创 2024-01-11 15:16:21 · 1832 阅读 · 1 评论 -
【Spring Boot】SpringBoot maven 项目创建图文教程,超详细!
创建一个Spring Boot项目并使用Maven进行构建是一项相对简单的任务。原创 2024-01-10 15:48:59 · 4635 阅读 · 0 评论 -
【Spring Boot】 .mvn、.gitignore、HELP.md、mvnw、mvnw.cmd 文件的作用
mvnw 是用于Unix系统(Linux、Mac)的脚本,mvnw.cmd 是用于Windows系统的脚本。这些文件通常用于提高项目的可移植性和开发者之间的一致性。使用 Maven Wrapper 可以确保每个开发者使用相同版本的 Maven,而不必手动安装。在使用Spring Initializr创建项目时,可以选择是否包括这些文件,具体取决于项目的需求和开发者的偏好。它们是用于在不安装 Maven 的情况下运行 Maven 构建的脚本。的工具,使得你的项目不需要提前安装 Maven。原创 2024-01-10 15:47:20 · 861 阅读 · 0 评论 -
【Spring Boot】新建一个项目,maven 和 spring initializer 的区别
在IntelliJ IDEA中,当你新建一个项目时,可以选择使用Maven或Spring Initializer来初始化项目。原创 2024-01-10 09:30:52 · 1567 阅读 · 0 评论 -
【网络】服务限流、熔断、降级机制
这只是一个简化的例子,实际情况中可能会根据具体的业务需求和技术栈选择不同的实现方式和工具。上述示例中使用了Spring Cloud的RateLimiter和Netflix Hystrix来演示服务限流、熔断和降级的概念。服务限流、熔断和降级机制不仅仅可以在网关中实现,它们可以在微服务架构的各个组件中进行实现。总体来说,服务限流、熔断和降级机制可以在微服务架构的不同层面和组件中进行实现,以提高整个系统的稳定性和可用性。让我们以一个简单的电商微服务架构为例来说明服务限流、熔断和降级的实现。原创 2024-01-05 14:59:31 · 1091 阅读 · 0 评论 -
【微服务】微服务详解、模块化开发详解
微服务架构是一种软件设计和开发的方法,将一个大型的应用程序拆分为一组小而独立的服务。每个服务都运行在自己的进程中,并通过轻量级的通信机制(通常是HTTP API)与其他服务进行通信。这些服务可以独立开发、部署和扩展,因此可以更容易地实现敏捷开发和持续交付。在微服务架构中,通常一个模块会对应一个微服务,但并不是绝对的规定。微服务的概念强调将一个大型应用程序拆分成一组小而独立的服务,每个服务都运行在自己的进程中,有自己的数据库和业务逻辑。这种拆分的单元通常被称为微服务。原创 2024-01-03 15:42:28 · 2221 阅读 · 0 评论 -
【SpringCache】SpringCache详解及其使用,Redis控制失效时间
Cacheable 是 Spring Framework 中的一个注解,用于声明某个方法的结果应该被缓存,以便在后续调用中可以直接返回缓存的结果,而不需要再次执行方法体。这个方法在执行时,不会先检查缓存中是否已有结果,而是直接将方法的返回值放入缓存中。第2步:在具体方法上加注解【@CachePut、@CacheEvict、@Caching】或者在方法上添加 @Cacheable 注解: 在需要缓存的方法上使用 @Cacheable 注解,指定缓存的名称、键等信息。具体的配置方式取决于使用的缓存管理器。原创 2023-12-22 14:08:39 · 1281 阅读 · 0 评论 -
【maven】setting.xml文件详解
在 Maven 构建项目时,如果你的网络环境需要通过代理服务器才能访问外部资源(如 Maven 仓库、外部库等),就需要配置 Maven 使用的代理服务器信息。例如,如果在项目的 pom.xml 文件中配置了自定义的镜像、仓库、或者其他 Maven 构建相关的设置,那么这些项目级别的配置会覆盖 settings.xml 中的全局配置。在实际的 Maven 项目中,通过修改 settings.xml 文件,可以对 Maven 的行为进行全局的配置,从而满足项目的特定需求。选项,Maven 将使用默认配置。原创 2023-12-22 16:52:44 · 1604 阅读 · 0 评论 -
【maven】正式版本和快照版本详解
正式版本是项目的一个稳定、有序的发布版本,用于生产环境部署。版本号通常不包含任何特殊标识,例如 1.0.0 或 2.3.1。一旦发布了正式版本,其版本号不会更改。每个正式版本都是一个独立的、可靠的构建。原创 2023-12-25 14:24:59 · 1655 阅读 · 0 评论 -
【Spring Boot】Spring Boot 配置文件详解(application.yml、application-dev.yml、application-test.yml )
在 Spring Boot 中,可以通过属性文件(比如 application.yml 或 application.properties)来配置应用程序的属性。除了通过属性文件来设置激活的环境外,你还可以通过命令行参数、系统属性、环境变量等方式来指定激活的环境。上述示例展示了一些常用的配置项,但根据应用程序的需求,你可以在 application.yml 中配置各种属性。这些方式都允许在应用程序中方便地访问配置文件中的属性值,开发者可以根据具体情况选择最适合的方式。外,你还可以使用其他自定义的配置文件。原创 2023-12-29 13:58:20 · 12050 阅读 · 0 评论 -
【maven】pom.xml 文件详解
元素: Maven 模型的版本号,当前版本为 4.0.0。元素: 项目组标识符,通常采用反转的域名风格。元素: 项目的唯一标识符。元素: 项目的版本号。元素用于指定 Maven 项目的打包方式,即最终产物的类型。该元素位于 pom.xml 文件的元素下。以下是jar(默认值): 生成 JAR 文件。原创 2023-12-25 14:48:32 · 1328 阅读 · 0 评论 -
SpringBoot+MyBatis后端框架详细教程
2、配置数据库连接信息:在应用程序的配置文件中,(如 application.yaml 、application.yml或 application.properties,这三种配置文件的语法和文件格式不同,但是作用是相同的,它们都用于配置 Spring Boot 应用程序的属性和行为。)配置数据库连接相关的属性,如数据库的 URL、用户名、密码等。通过使用 QueryWrapper,您可以更加灵活和方便地构建复杂的查询条件,减少手写 SQL 的工作量,并提高代码的可读性和可维护性。原创 2023-07-07 14:31:03 · 4763 阅读 · 1 评论