- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 kafka监听
Spring框架中的发布订阅模式是一种常用的设计模式,它在事件驱动架构中扮演着重要角色。这种模式通过解耦事件的发送者(发布者)和接收者(订阅者)来提高系统的灵活性和可扩展性。下面我将详细介绍Spring中发布订阅模式的用处及其应用场景。:这是事件监听器接口,定义了一个onApplicationEvent方法,用于处理事件。r:这是一个接口,提供了publishEvent方法来发布事件。:这是所有事件的基类,事件对象通常会携带一些数据或状态信息。:封装了一些数据或状态变化的通知。接口来支持发布订阅模式。
2024-08-27 10:52:24
1501
1
原创 kafak推送消息。
在application.properties或application.yml中配置Kafka。使用Message发送消息(Spring Kafka 2.2及更高版本)使用ProducerRecord发送消息。发送带有自定义头信息的消息。发送带有分区号的消息。
2024-08-27 10:10:04
821
原创 实际项目中,运用Retrofit和OkHttp调用其他项目接口
Retrofit 和 OkHttp 是 Android 开发中常用的 HTTP 网络请求库。Retrofit 是一个类型安全的 HTTP 客户端,而 OkHttp 是一个底层的 HTTP 库,用于处理网络请求的具体实现。1、创建 Retrofit链接实例。3、初始化外部接口的bean。2、定义 API 外部接口。4、调用接口、获取参数。
2024-08-26 10:27:23
488
原创 Druid抛出注入异常
Druid Wall 过滤器是一种 SQL 审计与防火墙功能,它可以防止恶意的 SQL 注入攻击,并对 SQL 语句执行安全检查。当 spring.datasource.druid.filter.wall.enabled 设置为 true 时,Wall 过滤器将启用,会对所有通过 Druid 数据源执行的 SQL 进行安全性检测和过滤。2、将apollo配置中的spring.datasource.druid.filter.wall.enabled。应该是第二次爆出此类错误,第一次时间比较久,没记录下来。
2024-03-08 10:46:46
1390
原创 在哪里设置JVM参数
1、idea设置jvm参数2、配置文件设置参数c盘—>当前用户—>.IntelliJIdea2019.3—>config—>config—>idea64.exe.vmoptions
2023-02-09 10:08:14
987
原创 数据库的临时表
postgrep -- temp是关键。或者temporary create temp table merge_tmp( trade_code varchar(20) NOT NULL, wh_date varchar(10) NOT NULL, cop_exg_no varchar(64) NOT NULL, exg_version varchar(100) NOT NULL ) on commit delete rows; 临时表级别ON+COMMIT+PRESERVE+
2022-05-26 09:49:47
734
原创 车300面试题
卷一Java基础1、java中的内存泄漏是怎么回事答:在可达性分析法种,不可达的会被清理掉,但有些对象是无用的不会在被调用,这些对像就是java 的内存泄漏长生命周期的对象,持有短生命周期的引用就可能会出现内存泄漏序列已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统奔溃等严重后果。2、equals和==区别1、==是比较运算符,equals()是object类中的方法2、 = =比较的是两个变量或者实例是不是指向同一个内存空间,equals
2022-03-08 10:24:58
3946
2
原创 JVM知识点的整理
1、JVM的重要组成部分1、类加载器Java转换字节码2、运行时数据区把字节码加载到内存中3、执行引擎将字节码转换成为操作系统指令,交由CPU执行4、本地库接口执行过程可能调用其他语言的本地库接口2、类的加载过程1、加载(根据路径加载文件)2、检查(检查文件是否正确)3、准备准备给类的静态变量在堆内分配内存空间,静态变量只初始化一次4、**解析:**将常量池中的符号引用替换成直接引用,符号引用一个标识,直接引用可以理解为直接指向内存中的地址,常量池在元空间5、初始化对静态变量
2022-03-04 09:16:53
365
原创 @Resource和@Autowired注解区别
@Resource是Java自己的注解,@Resource有两个属性是比较重要的,分是name和type;Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。@Autowired是spring的注解,是spring2.5版本引入的,Autowired
2022-03-03 15:41:09
192
原创 后端接口请求对比
注解注解作用@Getmapping处理get请求,传统的RequestMapping来编写应该是@RequestMapping(value=“get/{id}”),method=RequestMethod.Method.GET)的简写。@GetMapping(“/get/{id}”)@PostMapping处理post请求,传统额RequestMapping来编写应该是@RequestMapping(value = “/get/{id}”,method =RequestMet
2022-03-03 13:43:21
396
原创 @RequestParam,@PathVariable和@RequestBody三者区别
@RequestParam,@PathVariable和@RequestBody三者区别@RequestParam注解顾名思义:获取参数,即是获取传送过来的参数;例如获取下面链接的id参数值:链接(注意链接格式区别)http://localhost:8090/hello?id=2//使用@RequestParam注解获取idpublic String Demo1(@RequestParam String id){ System.out.println("链接中请求参数的id:"+id);
2022-03-03 13:35:24
140
原创 liquibase总结
1、liquibase是什么Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。2、Liquibase具备如下特性:不依赖于特定的数据库,目前支持包括Oracle/Sql Server/DB2/MySql/Sybase/PostgreSQL/Caché等12种数据库,这样在数据库的部署和升级环节可帮助应用系统支持多数据库。提供数据库比较功能,比较结果保存在XML中,基于该XML你可用Liquibas
2022-03-03 13:28:40
536
原创 @value(“${}”)和@value(#{})用法
① ${ property : default_value }② #{ obj.property? :default_value }第一个注入的是外部配置文件对应的property,第二个则是SpEL表达式对应的内容。 那个default_value,就是前面的值为空时的默认值。注意二者的不同,#{}里面那个obj代表对象。...
2022-03-03 13:21:32
435
原创 @EnableCaching用法
注解是spring中的注解驱动的缓存管理功能,在当你在配置类(@Configuration)上使用@EnableCaching注解时,会触发一个post processor,这会扫描每一个spring bean,查看是否已经存在注解对应的缓存。如果找到了,就会自动创建一个代理拦截方法调用,使用缓存的bean执行处理详细讲解添加链接描述...
2022-03-03 13:19:12
595
原创 @EnableTransactionManagement和@Transactional
@Transactional:事务注解,对我们的实例类进行事务声明@EnableTransactionManagement 事务管理注解,开启事务管理器,对声明了@Transactional的类进行管理
2022-03-03 13:15:12
1079
转载 left join连接 后面的表查询条件只能加在on后不能加在where后
https://blog.youkuaiyun.com/guofang110/article/details/90444880
2022-03-02 15:26:07
476
原创 private和@***Mapping(value=“/”)搭配无法访问。
原因:容器扫描bean生成代理类的时候,public和protected方法可以被正常代理,而private方法的不会被代理,属性的注入也是在代理类中完成,所以public/protected方法获取的注入属性是完成注入的属性,private方法获取的是未完成注入时的属性,所以是null。...
2022-03-02 15:21:31
237
原创 java异常面试题整理
JAVA下得异常体系1、Error是虚拟机内部错误栈内存溢出错误,StackOverflowError(递归,递归层次太多或递归没结束)堆内存溢出,OutOfMermoryError(堆创建了很多对象)2、Exception是程序错误RuntimeException:也成为logicExcepion为什么不编译器不会要求try catch处理本质是逻辑错误,比如空指针异常,这种问题是变成逻辑不严谨造成的,应该通过完善我们的代码变成逻辑,来解决问题3、非RuntimeException百年
2022-03-02 15:09:28
423
原创 装箱与拆箱
1、装箱与拆箱是什么装箱是将值类型换成引用类型的过程,拆箱是将引用类型转换成值类型的过程装箱:用于在垃圾回收堆中存储值类型,装箱是值类型到Object类型或到此类型所实现的任何接口类型的隐式转换。拆箱,从object类型到值类型或者从接口类型到实现该接口的值类型的显式转换。2、定义Integer i = new Integer(1);从JDK1.5开始就提供了自动装箱的功能,要生成一个数值为1的Integer对象,只需:Integer i = 1;(这个过程中会自动根据数值创建对应的 Int
2022-03-02 10:43:32
1016
原创 接口和抽象类
不同点抽象接口只能继承一个抽象类可以可以由多个接口可以有构造方法不能有普通成员变量没有普通方法必须是抽象的抽象方法的访问类型可以是public,protected抽象方法只能是public包含静态方法不能包含静态成员变量可以任意只能public static final主要在代码中,实现代码的重用在架构设计方法发挥作用,主要定义模块之间的通信契约相同点1、都不能被实例化2、接口的实现类或抽象类的子类 都只有实现了接口或
2022-03-01 15:44:55
94
原创 String ,StringBuffer,StringBuilder区别
StringStringBufferStringBuilderfinal类型,每次操作都会产生新的String,然后将指针指向新的String对象都是在原有对象上进行操作,都是在原有对象上进行操作,是常量,线程安全方法加了同步锁或者对调用的方法加了同步锁,线程安全没加同步锁,线程不安全,性能高...
2022-03-01 15:08:46
78
原创 多态面试题
1、什么是多态面向对象三大特性之一,简单的说是一种接口多种实现多态是建立在继承的基础上,是指不同的子类在继承父类后分别重写父类的方法,在继承子类中表现不同的形式。多态成立的另一个条件是在创建子类的时候必须使用父类new子类的方式,一句话,允许将子类类型的指针赋值给父类类型的指针,2、多态的作用1、不必为每一个派生类调用功能调用,只需要对抽象基类进行处理即可,大大提升程序可复用性2、派生类功能可以被基类的方法或引用变量调用,向后兼容,提高可扩充性和可维护性3、多态的分类编译时的多态是通过重载实现
2022-03-01 14:58:31
354
原创 apache和tomcat的区别
apachetomcat专门提供HTTP服务,相关配置是Apche组织在符合J2EE的JSP,Servlet标砖下开发的一个JSP服务器侧重于 Http server侧重于servlet引擎,如果以standalone方式运行,功能上和apache等效,支持JSP,但对静态网页不太理想web服务器应用(java)服务器APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等动态网页的就不行...
2022-03-01 10:30:24
96
原创 XML和HTML的区别
L和HTML都是文档,HTML主要是在编写web页面时使用的,XML主要是使用在配置文件这块。之前一个工作了的朋友和我说他现在使用的数据格式主要为JSON,除了对接部分项目时,对方也可能使用XML。总的来说HTTP+JOSN还是占比比较大的。HTMLXML超文本标记语言可拓展标记语言用来定义其他语言的一个元语言,只有句法规则不区分大小写、严格区分引号是可用可不用属性值必须分装载引号中可以有不带值的属性名所有属性都必须带有相应的值过滤空格空白文档
2022-03-01 10:22:59
166
原创 &与&&的区别
int a=5; int b=5; System.out.println((a == 5 & b == 5)); System.out.println((a == 5 &&b == 5)); System.out.println(a==6&&a==5); System.out.println((5&52));/*truetrue4*/1、&具有位运算符的作...
2022-03-01 10:21:13
139
原创 equals和==的区别
1、==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或者实例所指向的内存空间的值是不是相同2、==是指需内存地址进行比较,equals()是对字符串的内容进行比较3、 ==指引用是否相同,equals指的是值是否相同1、==是比较运算符,equals()是object类中的方法2、的运算速度比equals()快,因为只是比较引用...
2022-03-01 09:26:09
834
原创 java的内存泄露是怎么回事
java的底层是C++编写的,与C++不同,Java对内存对象的访问,使用的是引用方式,再Java程序汇总,这个引用变量本身既可以存放堆内存中,又可以放在代码栈的内存中(与基本数据类型相同)当一个内存对象失去了所有引用之后,GC就可以将其回收,放过来说,如果这个对象还存在引用,那么它将不会被GC回收,那怕是JAVA虚拟机抛出OutofMErmoryError1 Vector v=new Vector(10);2 for (int i=1;i<100; i++){3 Object o=new
2022-02-28 18:22:26
711
原创 pg/oracle数据库ascii码转字符串 自定义函数
pg ascii码转字符串函数传进来一个由ascii码拼接的字符串,在数据库中转换成字符串CREATE OR REPLACE FUNCTION dc_bill.f_xdo_to_assii(p_str character varying) RETURNS character varying LANGUAGE plpgsqlAS $function$declare resul varchar='';--定义返回结果 init Integer ;--定义 循环 strLength
2022-01-21 09:59:17
1609
原创 sql的同一栏位的多次限制
如下图查询,bond_mtpck_prpr小于0,,或大于100,或为空的数据先看看最初的语句左侧是最初的语句,只会过滤处bond_mtpck_prpr为空的数据,内部括号的限制条件并不会起作用,右侧是第一次修改,or的限制条件使得数据符合其中一条限制条件的 时候,就会忽略其他条件。真正的用法加括号,可以加多个限制条件...
2021-12-30 09:22:07
345
原创 mybatis处理in条件超过1000个报错
当mybatis的in超过1000个maximum number of expressions in a list is 1000方法一 select t.name from table t inner join <foreach collection="ids" item="itemId" separator=" union all " open="(" close=") t1"> select #{itemId} as orgNo form dual
2021-08-02 09:35:03
1892
原创 实体类转换无法重新赋值问题
在调用其他项目的时候发现接受实体类有栏位为null原因是因为被转换的实体类设置lombok的set方法默认首字母为大写,图中所示方法设置后只能set或get小写。解决方法一手动转换,在一个实体类转换接口下,专门写一个转换方法用于调用。但因为,公司的项目是自动转换的只需要写出源实体类和接受实体类后用gradle进行build之后就可自动生成方法。但这种转换方式无法解决该问题。所以在该接口下书写方法运用defulat自定义方法,可以自己写代码不用自动生成解决方法二查资料发现有一种@Map
2021-07-28 15:16:37
408
redis+luyten+dbeaver.7z
2021-07-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人