- 博客(502)
- 资源 (35)
- 收藏
- 关注
原创 Mybatis-Plus
在演示UpdateWrapper的案例中,在代码中编写了更新的SQL语句:这种写法在某些企业也是不允许的,因为SQL语句最好都维护在持久层,而不是业务层。就当前案例来说,由于条件是in语句,只能将SQL写在Mapper.xml文件,利用foreach来生成动态SQL。这实在是太麻烦了。假如查询条件更复杂,动态SQL的编写也会更加复杂。所以,MybatisPlus提供了自定义SQL功能,可以利用Wrapper生成查询条件,再结合Mapper.xml编写SQL2.2.1.基本用法@Test。
2024-07-06 12:48:11 1247
原创 Open Feign 源码解析(四) --- 请求对象构造(上)
源码前三篇文章的内容归纳起来就是讲了这样的问题:如何把接口转换为具有发送http请求能力的feign client对象以及如何整合到Spring容器中?
2023-11-27 21:41:25 1178
原创 Open Feign 源码解析(三) --- 配置体系详解
parent context type : AnnotationConfigServletWebApplicationContext 不允许bean 定义覆盖。一句话:通过spring子容器进行隔离,不同的feign client接口对应不同的子容器,里面有自己独立的配置。注意不是直接注册配置类本身,而是 FeignClientSpecification 类。拦截器是全局有效的吗?1)启动报错 2)全局配置生效 3)服务级别的配置生效。如果同时添加了全局和服务级别的配置,那会发生什么?
2023-11-27 21:26:22 1094
原创 微服务调用组件Feign
Feign是Netflix开发的声明式、模板化的HTTP客户端,其灵感来自Retrofit、JAXRS-2.0以及 WebSocket。Feign可帮助我们更加便捷、优雅地调用HTTP API。Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Spring Cloud openfeign对Feign进行了增强,使其支持Spring MVC注解,另外还整合了 Ribbon和Nacos,从而使得Feign的使用更加方便Feign 提供了很多的扩展机制,让用户可以更加灵活的使用。
2023-11-27 21:00:36 1180
原创 Open Feign 源码解析(二) --- 如何发送http请求
设计:组件化思维技术点:适配器模式,springboot自动装配(@Conditional注解的解读,@Import注解的顺序), 父子容器。
2023-11-27 20:48:41 679
原创 Open Feign 源码解析(一) --- FactoryBean的妙用
OpenFeign是 Spring Cloud 全家桶的组件之一, 其核心的作用是为 RestAPI提供高效简洁的 RPC 调用方式动态代理 (cglib, jdk)ImportBeanDefinitionRegistrar 接口@Import、ImportSelector、ImportBeanDefinitionRegistrar的使用和区别1)@Import(XXX.class)一般配合ImportSelector或者ImportBeanDefinitionRegistrar使用。
2023-11-27 20:44:29 1008
原创 SpringBoot集成RocketMQ
SpringBoot集成RocketMQ导入依赖(注意启动类上是不需要加其它注解的)<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.4</version></dependency>相关配置生
2023-09-01 12:19:15 1644 1
原创 分布式调度Elastic-job
某电商平台需要每天上午10点,下午3点,晚上8点发放⼀批优惠券某银⾏系统需要在信⽤卡到期还款⽇的前三天进⾏短信提醒某财务系统需要在每天凌晨0:10分结算前⼀天的财务数据,统计汇总以上场景就是任务调度所需要解决的问题任务调度是为了自动完成特定任务,在约定的特定时刻去执行任务的过程我们经常使用Spring中提供的定时任务注解@Scheduled 在业务类中⽅法中贴上这个注解")然后在启动类上贴上 @EnableScheduling 注解。
2023-09-01 11:31:01 658
原创 微服务演变及怎么拆分微服务
在后者的情况下,这个⼈在负责⾃⼰应⽤之外,还要额外负责给别⼈提供这些公共的功能 ——⽽这个功能本来是⽆⼈负责的,仅仅因为他能⼒较强/⽐较热⼼,就莫名地背锅(这种情况还被美其 名⽈能者多劳)。有时候 发布会不⼩⼼带上了⼀些未经测试的代码,或者修改了⼀个功能后,另⼀个意想不到的地⽅出错 了。意识到问题后,⼩明和⼩红从琐碎的业务需求中腾出了⼀部 分精⼒,开始梳理整体架构,针对问题准备着⼿改造。这种拆分的⾼明可以很好的规避因为⼀颗⽼⿏屎坏了⼀锅粥的单体弊端,同时将来要做⾼可⽤ ⽅案也能很好的节省机器或带宽的成本。
2023-09-01 11:21:13 140
原创 SpringCloudAlibaba常用组件
nacos ribbon feign sentinel gateway sleuth&zpkin 等相关组件的操作以及使用
2023-09-01 11:16:55 10549 7
原创 SpringBoot集成WebSocket
客户端不是关闭浏览器, 那样socket就没有被删除, 它只是断网了, 你不知道它还需不需要这个socket, 长此以往下去, 容易内存溢出, 这时候就需要心跳机制, 每隔一段时间发送一次心跳, 更新心跳时间, 这样就知道那些socket有用, 那些socket没用, 这样就可以把对应的socket链接删除。// 建立socket链接的唯一标识。// 建立socket链接的唯一标识。接口对跟socket长连接的前端通信。客户端A/B给socket发送消息。注解的类, 把它的地址发布出去。
2023-09-01 10:19:08 868
原创 SpringBoot常用操作
*** 让spring容器排除当前指定的bean* @since} }/*** 该bean定义在spring.factories自动装配* @since/**} }在spring.factory添加该过滤器先扫描@WebServlet,⽣成ServletRegistrationBean向Tomcat中添加TomcatStarter启动Tomcat时执⾏TomcatStarter的onStartup()
2023-06-23 17:50:36 1702
原创 RocketMQ常用操作
消息中间件,英文MessageQueue,简称MQ。它没有标准定义,一般认为:消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。**高效:**对于消息的处理处理速度快,RocketMQ可以达到单机10万+的并发。**可靠:**一般消息中间件都会有消息持久化机制和其他的机制确保消息不丢失。**异步:**指发送完一个请求,不需要等待返回,随时可以再发送下一个请求,既不需要等待。
2023-06-23 17:49:21 3395
原创 Spring整合MyBatis底层原理
先通过MapperScan找到对应的MapperScannerRegistrar。主要看这个类的这个方法registerBeanDefinitions。重点怎么把扫描到的mapper生成BeanDefinition的。build.gradle需要进入的依赖。自定义注解XiaogeScan。定义一个service。定义三个mapper。
2023-06-23 17:48:17 807
原创 SpringCloud集成RocketMQ
重点: RocketMQ相关配置看https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit。
2023-06-23 17:45:30 1179
原创 Bean Factory 和 ApplicationContext 谁才是 Spring IOC 容器-10
Bean Factory 和 ApplicationContext 谁才是 Spring IOC 容器
2022-11-02 11:59:01 193
mybatis_design.zip
2020-03-06
ihome_python.zip
2019-05-31
天天生鲜购物商城源代码
2019-04-27
深入k8s实战-从入门小白到轻松操作k8s
2024-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人