SSM
文章平均质量分 69
yogima
邮箱:yogima@qq.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
spring-ai简单示例
spring ai主要用于提供一致的编程模型,屏蔽不同 AI 服务提供商(如 OpenAI、Azure AI、Hugging Face 等)的底层差异。原创 2025-09-25 17:12:33 · 516 阅读 · 0 评论 -
基于spring的简单文件上传示例
当文件超过内存缓冲阈值的大小时,将会将文件存到缓冲区,内存开销不会太大,在方法之间作为参数传递时,传递的是MultipartFile对象引用,而不是文件数据本身,所以也不会有问题。注意这里的文件名称匹配规则和之前上传还有解压文件时的命名需要匹配,之前的代码里我所有的.zip都处理成了时间戳_文件名.zip,解压目录的话只是去掉了.zip后缀。注意:如果文件名中含中文,要注意对编码问题,这里默认尝试gbk和utf-8两种。这里假设只有一个.csv,且只支持utf-8格式。原创 2025-09-03 15:39:27 · 381 阅读 · 0 评论 -
自定义rabbitmq的ConnectionFactory配置
直接使用org.springframework.amqp.rabbit.core.RabbitTemplate即可。2、新增application.properties文件相关配置。1、引入依赖、以及producer和service保持不变即可。4、在service中注入RabbitMqProducer。3、编写配置类,自定义ConnectionFactory。2、在启动类中关闭rabbitmq的自动配置。1、在pom文件中引入amqp相关依赖。3、写一个producer。原创 2025-08-22 15:25:01 · 563 阅读 · 0 评论 -
SSE事件流简单示例
SSE(Server-Sent Events,服务器推送事件)是一种基于HTTP的服务器向客户端实时推送数据的技术标准。原创 2025-07-11 16:41:09 · 461 阅读 · 0 评论 -
kafka数据拉取和发送
如果需要处理多个Kafka集群,或者有更复杂的配置需求,可以创建一个配置类,使用@Bean方法定义多个ConsumerFactory和ConcurrentKafkaListenerContainerFactory实例。// ================= 集群1配置 =================@Bean//批量消费每次最多消费多少条消息记录// 1个消费线程//当消费者线程在60秒内没有接收到新消息时,触发空闲事件。原创 2025-02-25 20:40:03 · 1577 阅读 · 0 评论 -
java对hdfs文件的拉取和上传操作
以下示例都需要先获取到FileSystem对象fs。可以使用get 或 newInstance方法。如上代码在后续示例中不再重复展示。原创 2025-02-25 14:43:31 · 802 阅读 · 0 评论 -
java多线程及线程池
多线程是指在一个程序中同时运行多个线程,每个线程都是独立的执行流程,可以在同一时间内执行不同的任务,从而提高程序的并发性和效率。1、等待与睡眠Thread.sleep(long millis):使当前线程进入睡眠状态,直到指定时间过去或被中断。Object.wait():使当前线程等待,直到其他线程调用 notify() 或 notifyAll()。Thread.join():等待指定线程完成执行。2、I/O 操作。原创 2025-02-19 16:00:49 · 1036 阅读 · 0 评论 -
在Spring Data JPA中使用@Query注解
在以往写过几篇spring data jpa相关的文章,分别是Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询(分页查询和非分页查询)Spring Data JPA实现分页多条件查询2都是通过代码而不是sql来完成查询的,但是在做复杂情况的查询时,难免会用到@Query写sql语句。原创 2024-06-28 18:35:06 · 1445 阅读 · 0 评论 -
使用shell脚本删除rabbitMq的exchange
在Java里面,exchange和queue往往是根据注解自动生成的,非常方便,但是当版本升级改变了exchange类型(例如从direct改为fanout)的时候,就会发现组件启动不了了… 这是因为同名exchange在上一版本组件卸载时并不会被删除,名称冲突导致无法创建,而且很遗憾它也不能自动更新。所以我的解决方法是在组件的安装脚本里面,通过http api的方式去删除可能重复的exchange和queue编写一个删除exchange的脚本# 删除exchange的方法,有几个exchange调用原创 2021-12-17 15:34:54 · 1770 阅读 · 0 评论 -
生产者消费者模式——BlockingQueue
1、BlockingQueueBlockingQueue就是阻塞队列,向其插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;取出数据时,如果队列已空,线程将会阻塞等待直到队列非空。接口2、生产者消费者模式...原创 2021-08-16 14:55:15 · 1237 阅读 · 0 评论 -
Spring Boot 异步处理 @Async
1、异步和同步之前写了一个镜像上传的功能,先是分片上传,上传完毕后还要使用docker命令将镜像加载到本地,给镜像打标签并自动推送。在这个过程中如果使用同步,那么方法的返回会很慢很慢,要等这些步骤都执行完才能进行返回。如果做异步处理,就可以在上传完毕后先行返回结果,用户不用进行等待,后续步骤都在后台进行。2、Spring Boot异步处理①在启动类中使用注解@EnableAsync,启用异步处理②在需要异步处理的方法上使用注解@Async十分方便。但是注意这里的异步方法在本类调用是无效的,所以异原创 2021-08-14 15:23:03 · 1181 阅读 · 0 评论 -
Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询2 in的用法(含于)
之前写过一篇Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询(分页查询和非分页查询),但是筛选条件都是单一的,并不存在包含关系,例如我传ID[1,2,3],希望找到ID是这里面其中一个的所有记录。这时候就需要使用in。示例场景:根据项目名称查询人员,但是人员表中只有一个项目ID,也即,首先需要通过项目名称模糊查询到对应的项目ID列表,再通过这个ID列表去筛选人员。代码:筛选条件方法,使用in:private Specification<User原创 2021-06-02 20:12:37 · 2468 阅读 · 0 评论 -
Spring Cloud概念及Feign使用方法简介
文章目录一、集群、分布式和微服务二、服务治理框架:Eureka三、远程调用工具类:RestTemplate一、集群、分布式和微服务仅谈谈自己的理解,可能有不对或者不到位的地方,欢迎指正。集群是指多个服务器通过局域网或其他连接方式进行连接,可以被看作同一台服务器,协同完成工作,来提高性能或可靠性。这些服务器,应该也可以通过同一个ip进行访问。分布式是指一个业务拆成多个子业务,部署在不同的服务器上以提高效率。集群和分布式并不冲突,也有分布式集群,即既将一个大的业务拆成不同的子业务,同一个子业务也可以用原创 2021-04-06 12:18:24 · 1011 阅读 · 0 评论 -
Spring Data JPA实现分页多条件查询2
之前写过一篇博客Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询(分页查询和非分页查询)然后发现还有其他两种写法,会更简便一些。1、使用JPA自带的findByXxx接口示例:default方法在java8以后,接口中可以添加使用default或者static修饰的方法,在这里我们只讨论default方法,default修饰方法只能在接口中使用,在接口中被default标记的方法为普通方法,可以直接写方法体。实现类会继承接口中的default方原创 2021-04-06 10:44:50 · 1731 阅读 · 2 评论 -
RabbitMQ简介并在SpringBoot项目中使用RabbitMQ
rabbitMQ是一个开源的消息代理和队列服务器,通过普通协议在完全不同的应用之间共享数据。RabbitMQ使用Erlang语言编写,并基于AMQP协议Erlang语言 数据传输延迟低(利于承载高并发) socket也一样rabbitMQ可以与SpringAMQP完美整合,SpringAMQP框架提供了原生的rabbitMQ api 也提供了丰富的拓展APIrabbitMQ集群模式丰富,表达式配置,HA模式,镜像队列模型AMQP:高级消息队列协议 是一套规范生产者 消费者 虚拟主机 里面的交换机原创 2020-09-29 16:23:58 · 969 阅读 · 0 评论 -
Spring Data Jpa查询全部并排序
1、Repository层只需要简单地extends JpaRepository,依旧不用写任何东西。因为它自己其实有一个findAll(Sort sort)的方法,直接用就可以了。2、Service层中如下List<xxxDO> xxxDOS = xxxRepository.findAll(new Sort(Sort.Direction.ASC,"属性名"));但注意springboot2.2.1及以上的版本Sort的构造方法变为私有,需要像下面这样写:List<xxxDO&g原创 2020-08-24 11:35:02 · 5601 阅读 · 0 评论 -
Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询(分页查询和非分页查询)
文章目录1、Repository层继承`JpaSpecificationExecutor`2、Service层编写方法设置筛选条件Specification3、在Service层调用刚刚编写的方法和Repository层的方法实现查询①非分页查询②分页查询1、Repository层继承JpaSpecificationExecutor<T>如下:@Repositorypublic interface UserRepository extends JpaRepository<UserD原创 2020-08-19 15:38:48 · 2342 阅读 · 0 评论 -
SpringBoot中的定时功能——@Scheduled
最近在做一个关于健康码的小demo,需要一个每日上报信息功能,每天第一次登录的时候需要上报自己的健康信息,所以我的想法是用一个字段来标识今天用户是否上报过,如果没有就让前端显示上报页面,因此就涉及到了定时,在每天0点的时候需要把所有用户的那个字段都设为false。其实定时也很简单,如下所示即可,只要程序启动了就可以,也不需要用任何东西去调用下面的程序。不过虽然不需要被调用,它还是需要使用注解@Component,这是为了把它塞到Spring的容器中,所有的操作都是在Spring容器中进行的。packag原创 2020-08-14 20:35:39 · 358 阅读 · 1 评论 -
在SpringBoot项目中使用Spring Data JPA完成简单的登录注册
目录1、Maven依赖及application.properties配置2、实体类(BO)使用@Entity注释3、Repository(dao层)使用@Repository,继承JpaRepository<>4、在UserServiceImpl中进行调用5、UserReqDTO、UserRespDTO和UserRegisterDTO6、UserRestService和UserRestServiceImpl1、Maven依赖及application.properties配置<depen原创 2020-08-14 20:13:26 · 1178 阅读 · 0 评论 -
SpringMVC数据绑定
文章目录简介1、简单数据2、数组3、简单对象4、多级对象5、同属性对象6、集合对象①list对象②Set③Map7、json简介数据绑定是指将界面上的属性绑定到一个对象的某个实例上的某个属性。1、简单数据如果是简单数据,可以使用基本类型或是包装类型进行绑定,如果使用基本类型比如int,则说明这里的key是必须传的,如果不传入数据或传入的数据不是数字,则会报错因此对于可能为空的数据,需要使用包装类型。当然在实际应用中可以通过@RequestParam对是否必须进行配置,设置为@RequestPara原创 2020-08-05 17:16:21 · 333 阅读 · 0 评论 -
快速入门SpringMVC
文章目录你或许需要一些struts2基础简介基本流程1、在web.xml中配置入口servlet2、配置文件为dispatcher-servlet.xml(相当于struts.xml)配置文件命名文件位置① WEB-INF文件夹下② 根据contextConfigLocation的value进行判断文件内容①数据库信息还是配置在applicationContext.xml中②***spring注解...原创 2019-07-08 15:43:19 · 234 阅读 · 0 评论 -
在IDEA中使用SpringBoot创建第一个SSM程序(数据库使用postgresql,jdk版本为11)
文章目录一、写在前面二、安装IDEA并配置Maven三、SpringBoot是做什么的?四、创建一个SpringBoot工程1、通过IDEA的SpringInitializr创建2、通过官网创建五、安装并创建PostgreSQL数据库1、安装地址2、建表3、插入数据及设置主键4、注意事项!非常重要!六、编写application.properties,启动项目七、Mybatis Generator工具1、引入依赖2、mybatis-generator.xml3、自动生成八、测试一、写在前面对于我而言,在原创 2020-07-31 16:17:47 · 871 阅读 · 1 评论
分享