骆驼整理说
这个作者很懒,什么都没留下…
展开
-
SpringBoot Overview
家中虽有二亩田 温饱果腹尚且难 种田若能享清闲 何必离乡赚银钱。原创 2022-02-16 21:20:21 · 378 阅读 · 0 评论 -
SpringBoot自动装配过程
整个J2EE的整体解决方案和自动配置都在springboot-autoconfigure的jar包中,它将所有需要导入的组件以全类名的方式返回,然后被添加到容器中,把当前启动器需要的所有组件都导入进去 , 并配置好这些组件,有了自动配置类(xxxAutoConfiguration),免去了手动编写配置等工作。这些value就是自动配置类的全限定名,它们会被加载到Spring容器中。在这个过程中,会进行环境的准备、Banner的打印、上下文对象的创建、上下文的准备以及上下文的刷新等操作。原创 2024-11-04 19:32:36 · 28 阅读 · 0 评论 -
SpringBoot打包跳过测试类
在plugins里面加入一下依赖即可。原创 2024-11-04 19:14:23 · 9 阅读 · 0 评论 -
配置类如何读取yml文件
application.yml中配置的东西,通常是自动配置类中属性的值,只要存在于spring.factories中的,都可以在application.yml中进行配置。当然并不意味着不存在其中的就不能配置,这些配置类是可以进行自定义的,只要写了配置类,就可以在yml中配置需要的属性值,然后在配置类中直接读取这个配置文件,将其映射到配置类的属性上。在yml中配置的date-format,通过@ConfigurationProperties映射到类中的dateFormat中。原创 2024-11-04 19:10:44 · 10 阅读 · 0 评论 -
SpringBoot启动器
其中有自动配置相关的依赖、日志相关依赖、还有Spring-core等依赖,这些依赖只需要导入一个spring-boot-starter就可以直接将其全部引入。SpringBoot会将所有的功能场景都封装成一个一个的启动器,供开发人员使用。在官网上找到所需的启动器,直接将其引入。引入spring-boot-starter-web会自动导入web环境下所有必需的依赖。原创 2024-11-04 19:02:54 · 341 阅读 · 0 评论 -
SpringBoot约定大于配置
若入口类所在的包是cn.objectspace.demo那么自动扫描包的范围是cn.objectspace.demo包及其下面的子包,如果service包和dao包不在此范围,则不会自动扫描。spring的配置文件目录可以放在/config、/(根目录)、resource/config/、resource/,这四个路径从上到下存在优先级关系。译为:file:./config/、file:./、classpath:/config/、classpath:/。原创 2024-11-04 18:52:01 · 23 阅读 · 0 评论 -
SpringBoot开箱即用
父工程spring-boot-dependencies,存放了SpringBoot的核心依赖。在引入一些SpringBoot依赖jar包时不需要指定版本,正是因为SpringBoot的父依赖已经帮我们维护了一套版本。SpringBoot配置的依赖都在spring-boot-dependencies里面了。点开SpringBoot项目POM文件中父依赖,按住Ctrl+鼠标左键,点进去。出现如下依赖,再点进去。原创 2024-11-04 18:49:31 · 32 阅读 · 0 评论 -
spring.factories文件的作用
spring.factories文件是Spring Boot自动配置的核心组成部分,通过它可以将不同的自动配置类和后处理器集中在一起,便于Spring Boot在运行时自动进行组件装配。自动配置类:用于指定自动配置类,这些类会在Spring Boot启动时根据类路径下的jar包和配置自动进行bean的创建和配置。自动配置导入过滤器:用于指定自动配置导入过滤器,这些过滤器会用于过滤自动配置类,确保只有满足条件的自动配置类才会被加载。原创 2024-11-04 15:27:52 · 150 阅读 · 0 评论 -
SpringBoot开箱即用原理
所以在加载自动配置类的时候,并不是将spring.factories的配置全量加载进来,而是通过这个注解的判断,如果注解中的类都存在,才会进行加载。SpringBoot所有自动配置类都是在启动的时候进行扫描并加载,通过spring.factories可以找到自动配置类的路径,不是所有存在于spring.factories中的配置都进行加载,是通过@ConditionalOnClass注解进行判断条件是否成立(只要导入相应的stater,条件就能成立),如果条件成立则加载配置类,否则不加载该配置类。原创 2024-11-04 15:24:54 · 265 阅读 · 0 评论 -
Mybatis有哪些版本
在选择MyBatis和MyBatis-Spring版本时,需要注意它们之间的版本对应关系。Spring 4.x.x则与MyBatis 3.x.x和MyBatis-Spring 1.2.x配合使用等。MyBatis的版本命名采用了数字递增的方式,每个主版本(如3.x)下可能包含多个次版本(如3.1、3.2等)和修订版本(如3.1.1、3.1.2等)。截至2024年,MyBatis已经发布了多个3.x.x版本,其中最新的稳定版本是MyBatis 3.5.13,该版本发布于2023年3月11日。原创 2024-10-29 00:40:16 · 80 阅读 · 0 评论 -
Spring Cloud有哪些版本
2023.0.x(Leyton):截至2024年9月,这是Spring Cloud的最新版本,基于Spring Boot 3.x版本研发,具体支持的Spring Boot版本包括3.3.x和3.2.x。2021.x:Spring Cloud在2021年推出的新版本线,支持更新的Spring Boot版本,并引入了更多的新特性和改进。Hoxton:支持Spring Boot 2.2.x和2.3.x,是Spring Cloud在2020年左右的一个稳定版本,提供了丰富的微服务功能和良好的兼容性。原创 2024-10-29 00:36:13 · 37 阅读 · 0 评论 -
SpringBoot有哪些版本
SpringBoot是由Pivotal团队开发的一个用于快速构建基于Spring框架的应用程序的开源框架。原创 2024-10-29 00:30:17 · 85 阅读 · 0 评论 -
Spring版本有哪些
Spring是一个轻量级的、开源的Java框架,其版本众多,每个版本都引入了新的特性和改进。原创 2024-10-29 00:24:02 · 95 阅读 · 0 评论 -
Nginx
作为web服务器:Nginx可以处理静态页面,支持CGI协议的动态语言(如perl、php等),但不直接支持Java。- 在中国大陆,许多知名网站如百度、京东、新浪、网易、腾讯、淘宝等都使用Nginx作为他们的web服务器或反向代理服务器。- Nginx的特点包括占有内存少、并发能力强,能经受高负载的考验,有报告表明能支持高达50,000个并发连接数。对于新建站点,建议使用最新稳定版作为生产版本。- 反向代理:Nginx常用于作为反向代理,帮助接收用户的请求,然后将请求按照规则转发到不同的服务器节点。原创 2024-07-15 17:44:00 · 199 阅读 · 0 评论 -
Nacos如何实现热部署
这样,当Nacos配置变更后,标注了`@RefreshScope`的Bean会重新创建,从而刷新其中的`@Value`注入的配置项。微服务通过引入Nacos配置管理依赖、配置Nacos地址和服务信息、从Nacos拉取配置等步骤,实现了对Nacos中配置信息的实时感知和自动更新。微服务启动后,会根据`bootstrap.yaml`中的配置信息去Nacos中拉取对应的配置文件,并与本地的`application.yml`或其他配置文件进行合并。在微服务项目中配置Nacos的地址以及服务的相关信息。原创 2024-07-03 08:49:28 · 422 阅读 · 0 评论 -
Redis官方可视化工具
RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持)。RedisInsight 提供的功能:唯一支持 Redis Cluster 的 GUI 工具;通过配置的 IP 和端口,来访问 RedisInsight 的管理界面。:配置 RedisInsight 的数据存放路径(配置好然后访问就可以了。原创 2024-06-09 11:47:10 · 65 阅读 · 0 评论 -
Spring Cloud
Spring Cloud有哪些版本-CSDN博客SpringCloud微服务治理_springcloud为微服务治理-CSDN博客微服务框架_微服务 架构 跨单元-CSDN博客SpringCloud核心组件_驼驼整理说-CSDN博客原创 2024-05-25 11:42:08 · 94 阅读 · 0 评论 -
Dubbo
此外,Dubbo还提供了服务注册、发现、动态路由等功能,帮助管理分布式系统中的服务。Dubbo的主要特点包括面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册与发现、高度可扩展能力、运行期流量调度以及可视化的服务治理与运维。在最新版本中,Dubbo引入了一系列新的功能升级,如Spring Boot Starter组件和新发布的Dubbo AOT(GraalVM Native Image),这些升级进一步提升了Dubbo的性能和易用性。虽然Dubbo具有许多优点,但它并不适用于跨语言调用的场景。原创 2024-05-25 11:37:14 · 97 阅读 · 0 评论 -
分布式系统
在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体。自治性:系统中的各个节点都包含自己的处理机和内存,各自具有独立的处理数据的功能。节点之间在地位上是平等的,既可以自治地进行工作,又能利用共享的通信线路来传送信息,协调任务处理。分布式系统是一个复杂但功能强大的架构,它能够有效地处理大量数据和任务,提供高可用性和高并发的服务,是现代计算机领域中不可或缺的一部分。分布性:分布式系统由多台计算机组成,它们在地域上是分散的,可以散布在一个单位、一个城市、一个国家,甚至全球范围内。原创 2024-05-25 11:31:20 · 242 阅读 · 0 评论 -
什么是分布式会话
当用户请求被分发到某个节点时,该节点可以从共享的数据存储中获取用户的会话数据,进行相应的处理,并将更新后的会话数据写回到共享存储中。在分布式系统中,用户的请求可能被分发到不同的服务器或节点上进行处理,这就带来了一个问题:如何确保不同节点之间能够共享和同步用户的会话数据,以保证用户在不同节点上的操作能够保持一致性和连续性?分布式会话是分布式系统中实现用户会话管理的一种重要机制,通过将会话数据存储在共享存储中,保证了用户在不同节点上的操作一致性和连续性,提高了系统的可用性、可扩展性和数据一致性。原创 2024-05-25 11:27:33 · 142 阅读 · 0 评论 -
SpringBoot
spring.factories文件的作用-CSDN博客SpringBoot有哪些版本-CSDN博客SpringBoot注解解析-CSDN博客SpringBoot开箱即用原理-CSDN博客SpringBoot框架原理-CSDN博客原创 2024-05-24 22:33:14 · 227 阅读 · 0 评论 -
Spring MVC
渲染视图:视图解析器找到具体的视图后,DispatcherServlet会调用该视图,并将Model中的数据传递给视图。用户发送请求:当用户通过浏览器或其他客户端发送请求(如GET或POST请求)到Web服务器时,该请求首先被Spring MVC的前端控制器(DispatcherServlet)捕获。Spring MVC的工作原理体现了MVC设计模式的优势,通过将业务逻辑、数据模型和视图分离,使得代码更加清晰、可维护,同时也提高了系统的可扩展性和可重用性。原创 2024-05-24 22:22:58 · 251 阅读 · 0 评论 -
Web环境中的SpringMVC
在 web.xml 中,已经配置了 ContextLoaderListener,它是 Spring 提供的类,是为在 Web 容器 中建立 IoC 容器 服务的,它实现了 ServletContextListener 接口,这个接口是在 Servlet API 中定义的,提供了与 Servlet 生命周期 结合的回调,比如上下文初始化 contextInitialized()方法 和 上下文销毁 contextDestroyed()方法。具体说来,这个启动过程是和Web容器的启动过程集成在一起的。原创 2024-05-24 22:20:00 · 39 阅读 · 0 评论 -
Spring事物传播方式
事务的传播机制,多个事务方法之间调用,事务如何在这些方法之间传播。方法A是一个事务的方法,方法A执行的时候调用了方法B,此时方法B有无事务以及是否需要事务都会对方法A和方法B 产生不同的影响,而这个影响是由两个方法的事务传播机制决定的。方法持有事务方法未持有事务REQUIRED支持当前事务,如果没有事务会创建一个新的事务SUPPORTS支持当前事务,如果没有事务的话以非事务方式执行MANDATORY支持当前事务,如果没有事务抛出异常创建一个新的事务并挂起当前事务创建一个新的事务。原创 2024-04-22 18:55:19 · 70 阅读 · 0 评论 -
Spring三级缓存
这是一个工厂对象的缓存。2. 如果此时Bean A需要依赖Bean B,并且Bean B也还没有被创建,Spring会检查二级缓存(earlySingletonObjects)中是否有Bean B的早期对象。1. 当一个Bean A正在创建过程中,Spring会先为Bean A创建一个早期对象,并把这个对象的工厂放入三级缓存(singletonFactories)。6. 最后,Bean A也会完成所有依赖的注入,并从三级缓存中获取自己的早期对象引用(如果需要的话),然后完成初始化,并被放入一级缓存。原创 2024-04-22 17:41:26 · 262 阅读 · 2 评论 -
@Autowired和@Resource
,默认情况下要求依赖对象必须存在,如果不存在会抛出异常,要想允许依赖对象为null值,可以设置required属性为false,@Autowired(required=false),如果使用名称装配,可以结合使用@Qualifier,@Autowired@Qualifier(“name”)。@Resource(该注解由J2EE提供),默认按照名称进行装配,名称可以通过name属性进行指定,如果未指定name属性,当注解写在字段上时,默认取字段名查找,当找不到名称匹配的bean时,才按照类型进行装配。原创 2024-04-22 17:08:37 · 102 阅读 · 0 评论 -
Spring IOC工作流程
先获取资源定位,然后创建了一个默认的bean工厂,然后创建了一个Reader用来读取xml文件,将创建的defaultListableBeanFactory作为参数传递给Reader,表示为此工厂创建Reader,用Reader读取配置信息,并将解析的bean定义注册到defaultListableBeanFactory 中。这样bean工厂就正确初始化了,调用工厂的getBean()方法获取实例了。Spring用ApplicationContext包含了上面所有步骤。Person类作为bean。原创 2024-04-22 17:00:17 · 112 阅读 · 0 评论 -
Spring控制反转(IOC)是什么
Spring框架的核心特性之一是控制反转(Inversion of Control,IoC),这是一个核心概念,用于减少代码之间的耦合度,使程序更加模块化、可扩展和可测试。在Spring中,这个容器就是Spring IoC容器。在传统的程序设计中,在代码中直接创建对象并调用其方法,这样会导致代码之间的耦合度很高,不利于维护和扩展。通过使用控制反转,可以将对象的创建和生命周期管理交给Spring容器来负责,应用程序代码则只需要通过依赖注入(Dependency Injection,DI)来获取所需的对象。原创 2024-04-22 16:52:18 · 234 阅读 · 0 评论 -
Spring自带工具类
断言是一个逻辑判断,用于检查不应该发生的情况,Assert关键字在JDK1.4中引入,可通过JVM参数-enableassertions开启,SpringBoot中提供了Assert断言工具类,通常用于数据合法性检查。原创 2024-04-14 20:30:58 · 261 阅读 · 0 评论 -
依赖注入 DI
Spring支持使用@Resource@Inject三个注解进行依赖注入。@Component(“id”) id可选,告诉spring这是一个组件,交由spring管理, 相当于xml当中的配置。@Autowired 默认按类型进行装配(该注解由spring提供,原创 2024-04-14 20:29:31 · 94 阅读 · 0 评论 -
Spring容器获取bean实例
并将自己继承的类注入到Spring容器中,继承ApplicationObjectSupport来获取ApplicationContext。的一种方法,这个方法常见于SpringMVC实现的web项目中。将Bean注入到Spring容器中,通过注解,或者配置均可。对象,这个方法很常见于SpringMVC构建的web项目中。并将自己继承的类注入到Spring容器中。接口,在Spring容器启动的时候将。从工厂中直接获取Bean实例,但是。5.使用Spring提供的工具类。方法提供的方法也是常用的获取。原创 2024-04-14 20:27:05 · 235 阅读 · 0 评论 -
Spring循环依赖
这可以打破循环依赖,因为当Bean A尝试获取Bean B时,如果Bean B被标记为`@Lazy`,那么Bean B的初始化会被推迟,直到Bean A完全初始化并准备好使用Bean B时再进行。如果循环依赖中的Bean都可以通过构造函数注入来初始化,那么这是最简单的解决方案。4. 使用`@Qualifier`注解:当存在多个同类型的Bean时,`@Qualifier`注解可以帮助你指定注入哪一个Bean。良好的设计和编程习惯,如使用依赖注入、降低类之间的耦合度等,都是避免循环依赖的有效方法。原创 2024-04-14 20:25:15 · 321 阅读 · 1 评论 -
Spring Bean作用域
Sping中bean的scope的值可以是singleton、prototype、request、session、global session。默认singleton。只有在web容器中才能使用request、session、global session。singleton:单例模式,spring容器中有且仅有一个对象,init方法在创建容器时仅执行一次。关闭容器会导致bean实例的销毁,调用destroy方法一次。原创 2024-04-14 20:23:47 · 507 阅读 · 0 评论 -
Spring IOC源码解析
控制反转(Inversion Of Control),将对象的创建和依赖关系(对象之间的依赖关系可以通过配置文件或者注解来建立)交给第三方容器处理,用的时候告诉容器需要什么然后直接去拿就行了。原创 2024-04-14 20:21:46 · 182 阅读 · 0 评论 -
Spring Batch
Spring Batch 构建了人们期望的 Spring Framework 特性(生产力,基于 POJO 的开发方法和一般易用性),同时使开发人员可以在必要时轻松访问和利用更高级的企业服务。Spring Batch 提供了可重用的功能,这些功能对于处理大量的数据至关重要,包括记录/跟踪,事务管理,作业处理统计,作业重启,跳过和资源管理。在 Spring Batch 中一个 job 可以定义很多的步骤 step,在每一个 step 里面可以定义其专属的 ItemReader 用于读取数据。原创 2024-04-14 20:18:22 · 129 阅读 · 1 评论 -
Spring ORM
而常见的一些 ORM 框架,比如 Hibernate、EclipseLink、OpenJPA 等等,其实都是提供了对 JPA 规范的支持,是 JPA 规范的具体实现提供者,用于辅助 Java 程序对数据库数据的操作。④为了规范 ORM 的具体使用,Java 5.x 开始制定了基于 ORM 思想的 Java 持久化层操作 API 规范,也即 JPA(注意,JPA 只是一个基于 ORM 的 Java API 规范,供各个 ORM 框架提供 API 时遵循),当前主流 ORM 框架都是支持 JPA 规范的。原创 2024-04-14 20:13:00 · 102 阅读 · 0 评论 -
Spring Message
监听注册的主要方法org.springframework.jms.config.JmsListenerEndpointRegistrar#registerEndpoint(org.springframework.jms.config.JmsListenerEndpoint, org.springframework.jms.config.JmsListenerContainerFactory原创 2024-04-14 20:10:08 · 280 阅读 · 0 评论 -
Redis服务设置密码
客户端使用config get requirepass命令查看密码,使用config set requirepass xx命令设置密码,密码设置完,执行命令config get requirepass验证通过密码,否则所有操作不可用,使用auth password验证密码,获取密码命令config get requirepass,取消密码命令config set requirepass。给redis-server.exe指定使用这个 redis.windows.conf。重启服务后,客户端重新登录后发现。原创 2022-03-29 17:48:43 · 2970 阅读 · 0 评论 -
Spring Bean的生命周期
Spring Bean的生命周期指的是从Bean的创建到销毁的整个过程。在Spring框架中,Bean的生命周期包括多个阶段,这些阶段由Spring容器来管理。原创 2024-03-18 16:34:19 · 844 阅读 · 2 评论 -
Spring框架核心模块
对数据访问的支持、与不同数据源的集成和事务管理的功能,提供了对JDBC、ORM(Hibernate、MyBatis)、NoSQL(如Redis、MongoDB)、JMS等的支持。提供了对应用程序安全保护的功能,包括认证(Authentication)和授权(Authorization),支持基于角色的访问控制和其他安全功能。提供了对单元测试和集成测试的支持,包括对JUnit、TestNG等测试框架的集成以及对Spring应用程序的自动化测试的功能。原创 2024-03-13 15:54:37 · 1320 阅读 · 0 评论