web后端开发
文章平均质量分 84
后端开发是指构建网站、应用程序或其他软件的背后的技术方面,主要负责处理应用程序的逻辑、数据存储和处理、安全性等方面
小兔桃桃
14年的时候五年级在诺基亚手机上接触到了第一个Java程序 小时候对塞班系统(Symbian)很感兴趣
十载寒冰 难凉热血 十年磨一剑 霜刃未曾试
旷野从不拒绝月色后升起的骤雨 生命轨迹本就不该有固定运行的程序
斑驳的现实铁锈丛生 困不住我疯长的浪漫主义
我的世界不需要什么修饰语 生命和心跳就是绝唱的词句
展开
-
SpringBoot 启动流程六
SpringBoot启动流程六这句话是创建一个上下文对象就是最终返回的那个上下文我们这个creatApplicationContext方法是调用的这个方法传入一个类型我们通过打断点的方式就可以看到context里面的东西加载容器对象当我们把依赖改成starter-web时这个容器对象会进行改变所以说这句话就是创建容器对象根据前期配置的容器类型进行判定并且创建接下来我们设置一下上下文容器的启动模式setApplicationSt原创 2024-07-05 13:16:36 · 738 阅读 · 0 评论 -
SpringBoot 启动流程五
我们进入这个方法是拿到了一系列的监听器一系列可运行的监听器下面好多代码都调用的监听器比如说这个用监听器去调用starting方法、这里面做的是全是执行监听器的动作这些name都是springboot的监听流程的名称这些都是监听器执行了对应的操作步骤但凡是传入listener对象进入某个方法的这个方法肯定是用这个监听器对象去干一些事情的接下来是这个方法获取到的是args命令行参数接下来初始化环境信息这里是把环境转化成了一个对象我们是调用这个方法初始化了一堆东西。原创 2024-07-05 13:07:05 · 721 阅读 · 0 评论 -
SpringBoot 启动流程四
前面这个创建对象是初始化SpringApplication对象是加载了SpringBoot程序的所有相关配置我们接下来要将这个run方法run过程是一个运行初始化容器我们看我们的运行结果是得到一个ConfigurableApplicationContext对象其实这个就是一个容器的上下文对象所以我们初始化容器就是为了得到一个ConfigurableApplicationContext对象就是这一串代码 具体干的事情前面这一块做了各种初始化工作初始化了一个计时器 开始计时。原创 2024-07-05 11:15:45 · 557 阅读 · 0 评论 -
SpringBoot 启动流程二
把传入的参数初始化为一个成员变量我们这样做是为了让这个resourceLoader资源加载器由一个参数 一个局部变量 升级成为一个成员变量让这个SpringApplication类的其他方法也能使用这就是扩大应用范围Assert是断言的意思这里是做逻辑判断做一个信息判断primarySource看一下传入的初始信息是不是为空这只是在内部进行了一个判定原创 2024-07-04 22:04:08 · 770 阅读 · 0 评论 -
SpringBoot 启动流程一
primarySource是指这个类如果一个接口有四个实现类但是你想设置某一个实现类为主体加载的你就可以加上@Primary注解这样这个实现类就是在自动转配中被加载的bean原创 2024-07-04 21:59:25 · 958 阅读 · 0 评论 -
Spring底层原理之bean的加载方式八 BeanDefinitionRegistryPostProcessor注解
在Spring框架中,Bean的底层数据结构通常是使用HashMap或ConcurrentHashMap来存储的。具体来说,Spring使用一个名为BeanFactory的接口来管理Bean,其默认实现是DefaultListableBeanFactory,它内部使用一个ConcurrentHashMap来存储所有的Bean实例,以及它们的相关信息。这种设计使得Spring能够高效地管理大量的Bean,并且支持并发访问。通过HashMap或ConcurrentHashMap,Spring能够根据Bean原创 2024-06-30 11:01:31 · 727 阅读 · 0 评论 -
Spring底层原理之bean的加载方式七 ImportBeanDefinitionRegistrar接口
ImportBeanDefinitionRegistrar 接口是 Spring Framework 提供的一个扩展接口,用于动态注册 bean definitions 到 Spring 的容器中。它允许开发人员根据特定的条件或逻辑在运行时注册额外的 bean definitions,从而扩展 Spring 应用程序的灵活性和功能。主要作用和用途:动态注册 Bean Definitions:通过实现 ImportBeanDefinitionRegistrar 接口,可以在应用程序启动时根据需要动态原创 2024-06-27 21:46:26 · 1147 阅读 · 0 评论 -
Spring底层原理之bean的加载方式六 实现ImportSelector接口
重写方法 后直接把要加载的bean放到字符串数组里返回。这个方法可以做一些动态的bean的加载。接口为 ImportSelector。之后拿到配置类6里面的所有bean。这种方式在实际开发中不常见。那为什么我们要折腾一大圈呢。涉及到一个概念 叫 元注解。作为bean加载进配置类。但是在框架内部大量使用。这样加载后就能创建对象。我们这个对象有很多方法。是用接口的方式实现的。我们写一个Main类。在框架底层是填充作用。原创 2024-06-27 21:42:54 · 839 阅读 · 0 评论 -
Spring底层原理之bean的加载方式五 用上下文对象调用方法手工加载bean
这种方式在实际开发中不常用我们之前提到的我们通过一个上下文对象去接收配置类是通过传一个类加载器进来。在Spring框架中,通常我们通过配置文件(如XML配置文件或者基于Java的配置类)来定义和装配Bean,并让Spring容器自动管理它们的生命周期。然而,有时候我们可能需要在代码中手动加载和管理Bean,这种情况下可以使用上下文对象来调用方法来手动加载Bean。假设我们有一个Spring的ApplicationContext对象,可以通过以下步骤手动加载Bean:原创 2024-06-27 21:38:06 · 404 阅读 · 0 评论 -
Spring底层原理之bean的加载方式四 @import 注解
spring倡导无入侵式编程理念Spring 框架倡导的无入侵式编程理念指的是,在使用 Spring 框架开发应用程序时,你的业务逻辑代码不需要依赖于 Spring 特定的类或接口,也不需要继承 Spring 的特定类。换句话说,你可以在不改变代码结构的情况下,将 Spring 框架集成到现有的应用中,并且可以很容易地移植到其他环境中,而不会受到 Spring 框架的限制或影响。具体来说,Spring 框架通过依赖注入(Dependency Injection)和面向切面编程(Aspect-Orie原创 2024-06-27 21:34:47 · 944 阅读 · 0 评论 -
Spring底层原理之proxyBeanMenthod实例 动态代理 反射 Bean的拦截
默认行为默认情况下,Spring会对@Configuration类进行CGLIB代理,以确保@Bean方法的调用可以被拦截,从而管理@Bean方法返回的实例的生命周期和依赖关系。proxyBeanMethods选项:这是Spring Boot 2.2版本引入的默认值。表示Spring会对@Configuration类进行代理,以支持方法调用的拦截和依赖管理。:这个选项告诉Spring不要对@Configuration类进行代理。原创 2024-06-26 13:58:56 · 1388 阅读 · 0 评论 -
Spring底层原理之FactoryBean Bean工厂 单例对象 多例对象
在 Spring Framework 中,FactoryBean 是一个用于创建其他 Bean 实例的特殊工厂 Bean。它允许开发者自定义 Bean 的创建逻辑,从而更加灵活地管理和配置 Bean 的实例化过程。FactoryBean 接口FactoryBean 接口是 Spring 框架中的一个重要接口,它定义了两个方法:getObject():这个方法负责返回由工厂创建的 Bean 的实例,可以是任意的对象,不限于特定的类或接口。getObjectType():这个方法返回由工厂创建的原创 2024-06-25 16:26:32 · 1256 阅读 · 0 评论 -
Spring底层原理之bean的加载方式三 用注解声明配置类 以及@Configuration 和 @Component 的区别
@Configuration@Configuration是 Spring Framework 中的一个注解,它用于指示该类是一个配置类,它的作用类似于传统的 XML 配置文件。具体来说,它的主要功能有以下几点:定义配置类:使用 @Configuration 注解的类可以提供 bean 的定义和其他 Spring 配置的定义。声明 Bean:在配置类中,可以使用 @Bean 注解声明 bean。这些 bean 将由 Spring 容器管理,并可以在应用程序中通过依赖注入来使用。替代 XML 配置原创 2024-06-25 16:22:05 · 1004 阅读 · 0 评论 -
Spring底层原理之bean的加载方式二 用XML+注解方式声明bean 使用@Component @Service @Repository 和 @Bean
关于xml里定义bean 太复杂了。bean的加载方式二 注解关于xml里定义bean 太复杂了我们要选择通过注解配置bean原创 2024-06-24 15:06:12 · 1084 阅读 · 0 评论 -
Spring底层原理之bean的加载方式一 用XML方式声明bean 自定义bean及加载第三方bean 2024详解
我们现在声明的bean都是自己手写的。使用 XML 方式声明 Spring Bean 是 Spring 框架的一种传统配置方式。这种方法通过在 XML 文件中定义 bean 及其依赖关系,来组装应用程序的各个组件。以下是详细介绍如何使用 XML 方式声明 bean原创 2024-06-24 11:48:55 · 703 阅读 · 0 评论 -
JavaWeb后端开发Spring框架之消息 消息队列案例--订单短信通知
当涉及使用Spring框架进行消息队列的订单短信通知时,你可以考虑以下步骤和实现方法:1. 确定技术栈和工具首先,你需要选择合适的消息队列技术。常见的选择包括:Apache KafkaRabbitMQActiveMQ这些消息队列系统都能够与Spring框架很好地集成,并且有广泛的社区支持和文档资源。2. 配置消息队列选择一个消息队列系统并设置好你的消息队列服务器。确保你有权限访问该队列,以便生产和消费消息。3. 创建订单服务创建一个Spring服务来处理订单相关的逻辑。这可能包括原创 2024-06-23 18:58:48 · 669 阅读 · 0 评论 -
后端开发Spring框架之消息介绍 同步异步 JMS AMQP MQTT Kafka介绍
消息在实际生活中的应用很常见Spring提供了一整套丰富的消息处理功能,从基础的消息传递接口到对各种消息中间件的支持,使开发者能够方便地构建消息驱动的应用程序。无论是同步还是异步消息传递,Spring都有相应的解决方案,能够满足不同场景下的需求。同步消息 讨债需要别人进行回应和响应异步消息 请帖不需要别人回应原创 2024-06-23 18:42:16 · 411 阅读 · 0 评论 -
Springboot拓展之整合邮件 JavaMail的使用与实操
这个依赖使我们去springboot的。这里面写了规范很多依赖的坐标可以直接导入 而不会出现版本冲突的问题第二步做配置我们要去邮箱客户端进行配置原创 2024-06-21 12:12:54 · 1205 阅读 · 0 评论 -
Web后端Javaee企业级开发之定时任务 Springboot整合任务框架Quartz和Task详解
在Java EE企业级开发中,定时任务(也称为后台调度或周期性任务)是非常常见的一种功能,主要用于执行那些不需要用户交互,但需要按照预定时间间隔或事件触发的任务。Java EE提供了几个框架和API来处理这种需求:Java.util.Timer和TimerTask:这是最早的定时任务解决方案,它允许你在主线程之外执行任务。然而,这通常用于一次性任务,不是特别适合复杂的业务逻辑,因为线程安全性较差。ScheduledExecutorService:这个API在Java并发包中,提供了更高级别的定时任务支持。你原创 2024-06-19 14:08:57 · 737 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存框架j2cache
这不是一个缓存这是一个缓存框架J2Cache, 也称为Java Cache或JSR-107,是一个用于缓存管理的标准API,它允许开发者在Java应用程序中实现分布式、基于内存的缓存。J2Cache主要通过接口提供功能,用于存储和检索数据,以提高性能和减少数据库访问。以下是J2Cache的一些关键点:我们查看maven工程这代表我们要使用的框架j2cache以及的我们要使用的两个缓存技术redis和j2cache指定j2cache的配置文件是j2cache.properties我们原创 2024-06-18 22:00:37 · 833 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术jetcache方法缓存方案
JetCache 是一个基于 Java 的缓存库,支持多种缓存方案和缓存策略,主要用于提升应用程序的性能和响应速度。它提供了多种缓存模式和特性,可以根据需求选择合适的缓存方案。JetCache 的主要特点和功能支持多种缓存后端:JetCache 支持多种缓存后端,包括 Redis、Caffeine、LevelDB 等,可以根据项目的需要选择合适的后端存储。多种缓存模式:Local Cache:本地缓存,使用 Caffeine 或者 ConcurrentHashMap 等,适用于单个应用节点内原创 2024-06-18 09:31:48 · 918 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术jetcache远程缓存方案和本地缓存方案
是一个基于 Java 的分布式缓存解决方案,旨在提供高性能和可扩展性。它支持多种后端存储,如 Redis、Hazelcast、Tair 等,可以作为应用程序的缓存层,有效地提升数据访问性能和响应速度。原创 2024-06-17 17:24:36 · 923 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术Memcached 下载 安装 整合测试 2024年5000字详解
我们需要在命令行窗口启动memcached.exe -d installmemcached.exe -d startmemcached.exe -d stop我们打开任务管理器 发现成功运行问题是springboot提供整合技术还没有纳入到整合中我们打开idea因为springboot没有整合根本没有配置所以我们直接采取硬编码的形式我们直接进行依赖注入书写完毕我们要去改一下缓存的注释我们把之前采用的缓存方案全部注释掉启动成功就是手搓客户端对象然后交给spring原创 2024-06-17 12:58:55 · 1165 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术Redis
Redis作为一种高性能、多功能的内存中数据存储系统,不仅适合作为缓存使用,还可以作为数据库和消息中间件使用。它的特点包括快速访问、丰富的数据结构、高度可扩展性和强大的功能,因此被广泛应用于各种大规模应用和系统中,尤其在需要快速响应和高并发的场景下表现突出。原创 2024-06-16 16:52:24 · 922 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术Ehcache
我们刚才是用Springboot提供的默认缓存技术我们用的是simple是一个内存级的缓存我们接下来要使用专业的缓存技术了Ehcache 是一个流行的开源 Java 分布式缓存,由 Terracotta 公司开发和维护。它提供了一个快速、可扩展、易于集成的内存缓存解决方案,常被用于提升应用程序的性能和扩展性。Ehcache 最初是作为一个基于 Java 的进程内缓存而设计的,后来也支持了分布式缓存的特性。原创 2024-06-16 15:35:12 · 1143 阅读 · 0 评论 -
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
Cacheable是 Spring Framework 提供的一个注解,用于在方法执行前先检查缓存,如果缓存中已存在对应的值,则直接返回缓存中的值,而不执行该方法体。如果缓存中不存在对应的值,则执行方法体,并将方法的返回值存入缓存供下次使用。在 Spring Boot 中,@Cacheable注解通常与缓存管理器一起使用,可以轻松地在方法级别上实现缓存功能,避免不必要的重复计算或查询数据库操作,从而提高应用程序的性能和响应速度。原创 2024-06-16 10:35:21 · 1390 阅读 · 0 评论 -
后端开发中缓存的作用以及基于Spring框架演示实现缓存
现在我们使用的程序都是通过去数据库里拿数据然后展示的长期对数据库进行数据访问这样数据库的压力会越来越大数据库扛不住了创建了一个新的区域程序访问去缓存 缓存区数据库缓存里放数据。原创 2024-06-15 20:26:07 · 1106 阅读 · 0 评论 -
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
当战斗开始,每一次挥动的动作仿佛舞蹈般流畅而有力,每一声兵器相击的撞击声都像是节奏的一部分。战斗的瞬间,心跳与每一个动作同步,身体仿佛融入了战场的氛围之中。每一个战术的执行都带来了接着配置数据库连接信息接下来用Mybatis-plus开发数据层接口开发业务层面向接口编程书写实现类在注入数据层接口的同时创建控制器controller层MVC类这样一个基本的框架就已经完成我们这时候到postman里发起请求 去进行一个查询挑战成功耗时4分49秒!原创 2024-06-15 20:06:06 · 1033 阅读 · 0 评论 -
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
分布式全文搜索引擎我们天天在用ES搜索的时候要与多个信息进行匹配查找然后返回给用户首先ES会将数据库中的信息先进行一个拆分这个叫做分词是按照词语关键词拆的然后就能进行搜索的时候匹配对应的id每一个关键字对应若干id每一个id对应数据然后搜索的时候展示简化版数据点击简化版数据反映全部信息属于的是全文搜索在数据库中有索引在ES中也有索引但是根据关键字查ID 再由ID查数据这个在全文搜索里叫倒排索引倒排索引是怎么出现的呢是根据创建文档 出现一个一个的库。原创 2024-06-15 18:01:50 · 995 阅读 · 0 评论 -
非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作
MongoDB是一个开源的面向文档的NoSQL数据库,它采用了分布式文件存储的数据结构,是当前非常流行的数据库之一。总结来说,MongoDB以其灵活的数据模型、高性能的查询能力、易于扩展和管理等特点,在Web应用开发、大数据分析等领域得到了广泛的应用和认可。原创 2024-06-15 13:53:14 · 724 阅读 · 0 评论 -
非关系型数据库NoSQL数据层解决方案 之 redis springboot整合与读写操作 2024详解以及window版redis5.0.14下载百度网盘
是 Spring Framework 提供的用于操作 Redis 数据库的核心类之一。它是 Spring Data Redis 模块的一部分,通过提供高级的、线程安全的访问 Redis 数据库的方法,简化了与 Redis 的集成和操作。在把数据写入数据库的时候 已经把对象类型的数据进行了转码。我们写在数据库里面的是以字符串为数据类型的存储单元。和我们之前安装的redis不是一个redis。即在springboot里整合的redis。我们发现在idea里使用的redis。这样我们就能放入我们之前存入的数据。原创 2024-06-15 11:19:56 · 1198 阅读 · 0 评论 -
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
导入依赖 starter就使用了spring的自动装配功能。等到上线的时候直接换其他数据库如轻量级数据库MySQL。当我们导入JDBC starter 的依赖时。yml里面的datasource里面的配置。我们去掉Mybatis-plus的依赖后。我们回顾一下druid数据源的配置方式。格式二是在引入druid的依赖的基础上。调用jdbcTemplate里面的方法。我们的数据库也可以换其他的内嵌数据库。记得上线的时候一定要把H2数据库关掉。我们找到了H2数据库和他的配置文件。原创 2024-06-15 10:22:57 · 957 阅读 · 0 评论 -
Spring运维之业务层测试数据回滚以及设置测试的随机用例
在pom文件里引入mysql的驱动和mybatis-plus的依赖。在数据层写接口 用mybatis-plus进行开发。如果执行到这边的代码 会在数据库 里面留下数据。我们要关闭事物 这样就不会对数据库进行操作。开发有开发数据库,运行有运行数据库。在测试类里面注入业务层接口。然后用业务层接口调用方法。随机生成的数据有范围控制。我们之前在写dao层。数据库数据会进行增加。这边做了一个数据回滚。原创 2024-06-09 18:22:55 · 232 阅读 · 0 评论 -
Spring运维之boo项目表现层测试匹配响应执行状态响应体JSON和响应头
表现层把good数据发送到/goods路径上去。匹配相应体是否和我们的预期结果一样。首先我们用lombok封装实体类。验证请求和预期值是否匹配。我们在页面中成功访问到。而且发送了虚拟的请求。我们接下来要进行验证。先去定义预期匹配结果。接下来我们要进行测试。原创 2024-06-09 18:15:23 · 443 阅读 · 0 评论 -
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
测试表现层的代码如何测试。原创 2024-06-09 18:11:38 · 970 阅读 · 0 评论 -
Spring运维之boot项目bean属性的绑定读取与校验
提示 processer 未进行配置。以后我们在做程序的时候输入的密码被识别成八进制数 转化为10进制我们推荐的是 纯字符串就用字符串""引号包裹原创 2024-06-06 16:36:11 · 1311 阅读 · 1 评论 -
Springboot框架开发与实用篇之热部署 2024详解
热部署(Hot Deployment)指的是在应用程序正在运行的情况下,对其进行更新或修改并将这些变更应用到正在运行的应用程序中的过程。通常情况下,传统的部署方式需要停止应用程序、部署更新,然后重新启动应用程序才能使更新生效。而热部署则允许在无需停止应用程序的情况下,即时地更新代码、配置文件或资源,从而提高了开发和部署的效率。热部署通常在开发和测试阶段使用,可以让开发人员在不间断地修改和调试代码的情况下,快速地查看和验证更改的效果。原创 2024-06-05 21:28:28 · 823 阅读 · 0 评论 -
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
利用lombok提供的注解简化开发 减少日志对象的声明操作。我们可以在子类中使用lombok的注解去实现。这样打印的日志信息就是DEBUG调试级别的。我们可以添加其他配置属性设置其他的信息。我们今后开发都是把写信息到日志里面。我们以后开发大部分用分组来固定日志。这些操作以后我们在公司中都不会去用。然而我们也可以控制日志的输出格式。我们也可以设置指定包的日志级别。就可以让下面的员工都去这样去做。我们要把日志写入文档保存到本地。我们要把日志写入文档保存到本地。我们要把日志写入文档保存到本地。原创 2024-06-04 21:32:43 · 539 阅读 · 0 评论 -
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
我们根据功能对配置文件中的信息进行拆分 并且制作成了独立的配置文件。我们要compile 手工编译 重新加载pom.XML里面的属性。我们现在都在用group属性(spring 2.4出现的)springboot运行时依赖maven里面的坐标配置。配置就是pro 沿用了maven的配置 完成了统一。所以所有的配置主要还是按照主启动里面的配置为准。我们可以在maven的配置文件里面去配置多环境。在maven我们做的这些坐标不是我们拿来用的。我们启动 要把要启动的信息包含进去。原创 2024-06-04 17:42:20 · 1091 阅读 · 0 评论 -
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
配置文件默认都是啊application开头的可以改的写一个简单的boot项目控制层用rest模式开发重命名配置文件但这样就不会提示了运行后后会存在找到其他配置文件的情况 我们要到文件资源管理器里面去查找我们可以在boot项目配置里面去手动设置指定配置文件yml不生效的大概率port:后面没有空格如果配置文件是yml修改填入的参数有所不同加入多个文件参数不同 用逗号隔开当我们配置多个配置文件的时候是后面一个配置文件里面的配置生效小结这都是boot官方文档中标注的知识。原创 2024-06-04 13:12:44 · 1334 阅读 · 1 评论