![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 75
一只java小菜鸡
一个努力的java攻城狮,内容对您有用的话点个关注哟
展开
-
乐观锁和悲观锁
悲观锁(Pessimistic Locking): 悲观锁的思想是,在对数据进行操作之前,先假设会有其他线程同时对数据进行操作,因此在操作过程中会对数据进行加锁,以避免其他线程的并发操作。乐观锁是一种并发控制的策略,它认为并发操作冲突的可能性很小,所以在进行操作时不加锁,而是在提交操作时检查是否有其他线程对数据进行了修改。互斥锁(Mutex):互斥锁是在编程语言中常用的悲观锁实现方式之一,通过互斥锁能够确保同一时间只有一个线程可以访问被保护的资源,其他线程需要等待锁释放后才能进行访问。原创 2024-02-22 17:27:35 · 566 阅读 · 0 评论 -
商城系统通过Kafka消息队列,实现订单的处理和状态更新springboot例子解决并发处理、数据一致性等问题
在订单状态更新时,需要更新订单状态表中的数据,并向Kafka中发送订单消息。为了解决这个问题,我们可以使用Kafka的事务机制,将订单状态表的数据更新和订单消息的发送放在同一个事务中,保证数据的一致性。在这里,我们在updateOrderStatus方法上使用@Transactional注解开启事务,将订单状态表的数据更新和订单消息的发送放在同一个事务中,并使用KafkaTemplate的executeInTransaction方法执行Kafka操作,以保证数据的一致性。// 更新订单状态表。原创 2023-11-28 17:00:09 · 1042 阅读 · 0 评论 -
kafka消息队列简单使用
以上就是一个简单的使用Spring Boot和Kafka实现消息队列的例子。原创 2023-09-28 11:14:01 · 693 阅读 · 0 评论 -
springboot打印操作日志
在上面的例子中,我们使用了logback框架打印日志。在doSomething方法中,我们分别使用了debug和error级别打印日志,分别用来记录方法的开始和结束信息,以及方法执行过程中出现的异常信息。通过打印这些日志,我们可以更好地了解方法的执行情况,以及定位和解决问题。在此示例中,我们使用了每天一个日志文件,并最多保留了7天的历史日志记录。在程序中需要进行性能分析时,用来记录程序的执行时间和资源消耗情况,方便进行优化和改进。在程序出现异常或错误时,用来记录错误信息和堆栈信息,方便定位和解决问题。原创 2023-09-13 16:49:53 · 236 阅读 · 0 评论 -
springboot中操作mongodb数据库(query update Criteria的使用方法)
目录引入依赖首先创建一个实体类 User:创建一个 UserDao 类,用来进行 MongoDB 的增删改查操作:最后创建一个 UserController 类,用来测试 MongoDB 的增删改查操作:Query Update Criteria的用法Query中的方法addCriteria(Criteria criteria)with(Sort sort)with(Pageable pageable)fields()include(String... fields)exclude(String... fi原创 2023-09-07 14:33:24 · 581 阅读 · 0 评论 -
shiro在springboot中的使用以及权限管理的实现
方法中,可以根据用户的角色、权限等信息,将其拥有的权限字符串添加到授权信息中。在Shiro中,权限通常使用字符串表示,可以根据应用场景自行定义权限字符串。用于存储系统角色的基本信息,包括角色名称、描述等。用于存储系统权限的基本信息,包括权限名称、描述等。用于存储系统用户的基本信息,包括用户名、密码等。路径下的不同HTTP方法所需要的权限,例如。注解,指定需要的权限。如果用户没有足够的权限,将会抛出。用于存储系统角色与权限的关联信息。在需要进行权限控制的方法上,使用。3.实现自定义Realm。原创 2023-09-04 10:04:33 · 377 阅读 · 0 评论 -
前后端分离不存在会话,sessionid不一致问题
在上面的代码中,我们使用fetch函数向后端发送了一个GET请求,并设置了请求头中的Content-Type为application/json;后端代码:在上面的拦截器中,我们设置了Access-Control-Allow-Credentials等跨域请求头。在上面的配置类中,我们创建了一个CorsInterceptor对象,并将其注册到InterceptorRegistry中,从而实现了使用拦截器解决跨域问题。原创 2023-08-30 10:55:03 · 1767 阅读 · 0 评论