- 博客(80)
- 资源 (2)
- 收藏
- 关注
原创 SpringBoot配置CORS
SpringBoot实现跨域资源共享(CORS)的5种方法:1.使用@CrossOrigin注解在Controller类或方法上配置;2.通过WebMvcConfigurer全局配置CORS策略;3.自定义Filter设置响应头实现;4.使用Interceptor在请求处理前后添加逻辑;5.直接在响应体中设置CORS头部。建议生产环境中明确指定允许的源和方法,避免过度宽松的配置。配置方式包括注解、全局设置、过滤器等多种灵活方案,可根据项目需求选择最适合的实现方式。
2026-01-06 14:38:47
741
原创 JDBC直接访问关系库及Hikari数据源访问关系库
本文介绍了两种Java访问关系型数据库的方式。第一种是JDBC直接连接方式,通过DriverManager获取连接并执行查询。第二种是使用HikariCP连接池,详细说明了连接池的各项配置参数,特别是maxLifetime属性的重要性及其推荐设置。两种方式都演示了如何查询User表并将结果映射到User对象。连接池方式通过DataSourceUtils工具类管理连接,提供了更好的性能和资源管理。文章强调了正确配置连接池参数以避免连接泄漏和无效连接问题。
2026-01-04 13:11:33
200
原创 JSONPath解析JSON数据结构
摘要: Fastjson的JSONPath提供了一种简洁的路径表达式语言,用于高效查询和操作JSON数据。支持基本语法(如$根节点、..递归搜索)、函数语法(如min()/max())和筛选语法(如[?(@.price>10)])。通过依赖Fastjson库,开发者可直接解析JSON字符串或对象,快速提取特定节点(如$.store.book[0].title)、过滤数据(如价格范围查询)或执行统计计算。适用于复杂JSON结构的精准数据访问,避免多层get()调用。 (字数:150)
2025-12-31 13:04:01
526
原创 @Bean修饰的方法的参数的注入方式
文章摘要:本文介绍了Spring中@Bean方法参数注入的两种方式:1)基础类型使用@Value注解从配置文件注入;2)对象类型默认按类型自动装配(@Autowired),当有多个同类型bean时可通过@Qualifier指定bean名称。示例代码展示了如何配置DataSource和JdbcTemplate,包括使用@PropertySource加载配置文件,以及通过@Value和@Qualifier进行参数注入。关键注解包括@Configuration、@PropertySource、@Bean、@Val
2025-11-17 14:31:08
139
原创 Java中的静态代理与动态代理(Proxy.newProxyInstance)
本文介绍了Java中的两种代理模式实现方式:静态代理和动态代理,重点讲解了基于Proxy.newProxyInstance()的动态代理实现方法。通过定义目标接口、实现目标类、创建调用处理器以及生成代理对象四个步骤,展示了动态代理的实现过程。动态代理的核心优势在于无需修改原有代码即可增强功能,通过InvocationHandler在方法调用前后插入额外逻辑。需要注意的是,JDK动态代理只能为实现了接口的类创建代理实例。
2025-11-11 16:42:11
190
原创 Java实现gRPC双向流通信
该文章介绍了如何配置gRPC Java开发环境,主要包含以下内容: Maven依赖配置:包括gRPC相关依赖、日志依赖SLF4J和Protocol Buffers依赖,并指定Java 8作为编译环境。 构建插件配置:使用protobuf-maven-plugin插件自动生成gRPC代码,配置了protoc和grpc-java插件的版本。 proto文件定义:展示了如何定义gRPC服务MyService和消息格式MyRequest/MyResponse,支持双向流式通信。 开发环境准备:简要说明需要安装pro
2025-10-23 16:21:09
349
原创 PostgreSql基于postgres_fdw创建外部表
摘要:本文介绍了PostgreSQL中配置FDW(Foreign Data Wrapper)远程访问的步骤。首先创建postgres_fdw扩展,然后定义外部服务器连接(host、dbname、port参数)。接着映射本地用户到远程用户(包含认证信息),最后创建外部表映射到远程数据库表(需指定列定义和远程表名)。整个过程实现了PostgreSQL跨服务器访问外部数据的功能。
2025-07-08 15:46:16
279
原创 Linux命令行发送http请求
本文展示了两个使用cURL工具发送HTTP请求的示例。第一个请求通过POST方法查询时间序列数据库,请求体中包含时间范围、指标名称和标签等参数。第二个请求演示了文件下载功能,包含认证令牌、内容协商头和自定义头的设置,并通过"-o"参数指定下载文件的存储路径。两个示例都采用JSON格式的请求体,并展示了HTTP请求中常见的头部设置,包括Content-Type、Authorization和Accept等。
2025-07-02 09:11:46
189
原创 Java字符串及字符编码及转码简介
Java字符串在JVM内部采用UTF-16编码存储,每个字符占2字节。UTF-8是另一种Unicode实现方式,与UTF-16的字节结构不同。I/O操作需显式指定编码(如UTF-8),否则使用平台默认编码,可能导致乱码。示例代码展示了字符串与UTF-8/UTF-16间的转换,以及不同编码下字节数组的差异。UTF-8编码中英文字符占1字节,汉字占3字节;UTF-16则统一占2字节。注意编码转换时需保持编解码一致,避免数据损坏。
2025-06-24 17:33:35
338
原创 Springboot获取容器中bean的方法
本文介绍了两种在Spring Boot中获取Bean的方式:1)通过@Autowired注解自动注入,默认按类型查找,也可配合@Qualifier按名称注入;2)静态方法方式,包括实现ApplicationContextAware接口获取应用上下文,或直接通过启动类获取ConfigurableApplicationContext。两种方式各具特点,注解方式更简洁,静态方法更灵活适用于非容器管理环境中。
2025-05-23 22:16:33
382
原创 hbase shell的常用命令
HBase Shell 是 HBase 数据库的命令行工具,提供了多种操作命令。用户可以通过 hbase shell 命令登录,使用 list 查看所有表,并通过 create 创建表,如 student 和 scores 表。插入数据使用 put 命令,查询数据则使用 get 和 scan。scan 支持多种过滤条件,如按行键范围(STARTROW 和 STOPROW)、列名(COLUMNS)以及限制返回条数(LIMIT)。此外,还可以查询特定时间戳的数据。这些命令帮助用户高效管理和查询 HBase 数据
2025-05-14 16:04:13
554
原创 @KafkaListener和KafkaTemplate自动装配原理分析
依赖项和配置信息参见另一篇博文,这里主要借助源码分析@KafkaListener和KafkaTemplate自动装配原理。
2025-02-25 10:57:38
682
原创 SpringBoot配置信息加密
文章介绍基于jasypt加密算法对springboot项目的配置信息(如密码等敏感信息)进行加密的详细实现步骤,以期帮助服务提高安全性能,实测可用。该加密方式的实现原理后续再作介绍。
2024-10-29 15:57:15
597
原创 Granafa配置基于elasticsearch数据源的折线图
Granafa可以直接配置基于elasticsearch数据源的折线图,用于展示es库中数据的最值、均值、总量等。
2024-10-10 10:36:17
438
原创 maven安装本地jar包到本地仓库
有时候我们需要把本地的 jar 包 install 到本地的 maven 仓库,这时就需要手动install依赖项。
2024-09-30 15:13:41
1263
原创 Lambda表达式的概念和使用
Java 8引入的Lambda表达式通过"->"操作符实现,左侧指定参数列表,右侧定义执行逻辑。它作为匿名方法,可简化接口实现,使代码更简洁。使用方式包括:无参无返回值、带参无返回值、多参数多语句带返回值等场景,支持类型推断和语法简化。在Nacos源码中,Lambda被用于事务回调处理,如TransactionTemplate.execute()方法中实现TransactionCallback接口,封装数据库操作逻辑。这种写法减少了样板代码,提高了代码可读性和灵活性。
2024-09-18 16:14:17
382
原创 Kafka性质小结
消息的确认包括自动确认和手动确认,通常采用手动确认的方式,配置项和代码块分别如下所示。这里需要注意的是,当消息1、2、3顺序到达,2偏移量确认失败,3偏移量确认成功时,2的偏移量将被覆盖,即后续将从3的偏移量开始消费!!!
2024-09-18 11:21:03
516
原创 Java中的正则表达式
] : 表示匹配括号里的任意一个字符。[abc]: 匹配a,b,c 的任意一个字母;[a-z]: 匹配小写字母的任意一个字母;[^abc]: 匹配 a, b, c 以外的任意一个字符;[A-Za-z]: 匹配所有的小写字母和大写字母的任意一个;[a-zA-Z0-9]: 匹配所有的小写字母和大写字母和数字的任意一个;[a-z&&[^bc]]: 匹配除了b和c以外的所有的小写字母;
2024-09-18 09:49:14
2297
原创 Nacos服务配置与服务注册问题
此时需要网络通畅,spring-boot和spring-cloud版本匹配。-job-tracker.yml》或《-job-tracker》或《
2024-08-13 16:22:56
489
原创 SimpleDateFormat的线程安全问题
假设线程A执行完calendar.setTime(date),把时间设置成2024-07-26,这时候线程被挂起,线程B获得CPU执行权。线程B也执行到了calendar.setTime(date),把时间设置为2024-07-27,线程挂起,线程A继续,calendar还会被继续使用subFormat()方法,而这时calendar用的是线程B设置的值了,这就是引发问题的根源,会出现时间不对,线程挂死等。
2024-08-12 16:54:22
620
原创 Redis数据同步
文章简单介绍基于redis-shake的redis数据同步,该工具基于每个节点同步数据,即每个主节点需同步一次,才能完成整个redis集群的数据同步。
2024-07-10 14:41:24
803
1
原创 SpringBoot配置参数获取
首先创建一个与配置项对应的POJO类,并使用@ConfigurationProperties 注解指定前缀。然后,在主程序类上添加@EnableConfigurationProperties注解,当有大量的配置参数时,可以将它们组合到一个POJO类中,并使用@ConfigurationProperties注解进行自动装配。如果想要全局共享配置参数,则可以使用@EnableConfigurationProperties注解。并传入该POJO类作为参数。
2024-06-27 14:22:33
1072
原创 SpringBoot配置多个数据源(静态)
Spring Boot多数据源配置实现 摘要:本文展示了Spring Boot项目中配置多数据源的实现方案。主要包含以下内容: 项目依赖配置,使用Spring Boot 2.2.5、PostgreSQL驱动、Druid连接池和MyBatis-Plus框架 YAML格式的多数据源配置,包含认证和监控两个独立数据源 核心实现代码,通过自定义SqlSessionFactory将Mapper接口与特定数据源及SQL映射文件绑定 两种数据源创建方式(Druid和HikariCP)示例 MyBatis-Plus分页插件
2024-06-13 16:08:42
419
3
原创 idea搜索快捷键
Ctrl + F / Ctrl + Shift + F 按照文本的内容查找(不搜依赖项)Ctrl + Shift + N 按文件名称搜索文件(所有类型文件)Ctrl + N 按名称搜索类(自定义类+依赖项类)Ctrl + Alt + B 查看子类方法实现。Ctrl + H 查看当前的类的继承关系。Alt + F7 查找类或方法在哪被使用。Shift + Shift 搜索任何东西。
2024-04-02 09:55:58
840
原创 RESTfull接口访问Elasticsearch
如果是keyword类型的,是不能被分词器解析,想使用match或者term来查询这个字段匹配的,只能查询出完全匹配的数据来,其他的数据差一个字符都不能被查询出来!---------------------------------【查询文档】------------------------------q=name:smy。"name": "任飘渺""name": "任飘渺""name": "任飘渺""name": "任飘渺""name": "任飘渺""name": "任飘渺""name": "任飘渺"
2024-04-01 11:31:51
612
1
原创 @Transactional注解的使用与原理
RuntimeException 的异常)或 Error 才回滚事务,其他异常不会触发回滚事务。rollbackFor 可以指定能够触发事务回滚的异常类型,如上面的测试样例。在使用@Transactional注解的时候,rollback属性默认抛出了未检查 unchecked 异常(继承。throw new Exception("Student保存3条后异常");3、在类内部常规方法,调用类内部@Transactional标注的方法;2、事务方法内部捕捉了异常,没有抛出该异常及新异常;
2024-03-27 11:18:31
493
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅