spring中控制事务的方式有两种:编程式事务和声明式事务,今天我以两种事务出发,对spring中实现事务的@EnableTransactionManagement和@Transaction两个注解的底层原理进行讨论。 一、编程式事务 什么是编程式事务? 硬编码的方式实现事务,在代码中手动开始、提交和回滚事务 编程式事务实现思想是什么? 配置PlatformTransactionManager事务管理器去控制事务配置TransactionDefinition设置事务属性配置Transacti
2024-11-22Linux下查看网卡速率信息: 1、使用ethtool命令 ethtool ethx #查看支持的速率 ethx 为网卡名,使用 ifconfig -a ,ip a 查询。响应数据中: Link detected 为yes表示网卡已经连接。 2、使用 mii-tool 命令 mii-tool eth0 #查看 eth0 网卡信息,这个命令需要root权限,没有上边的好用。 3、查看网卡驱动: ethtool -i eth0 #查看网卡 eth0 的驱动信息。响应的: driver 就是驱
2024-11-22Nginx负载均衡器的优点: 实现看弹性化操作的架构,压力增大的时候可以临时添加后端Web服务器; upstream具有负载均衡能力(默认使用轮询),可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器; Keepalvied加Nginx监测脚本可保证单个nginx负载均衡器的有效性,避免单点故障 系统 两台Nginx: CentOS6.7 x86_64 两台Web: Ubuntu15.04 desktop 拓扑 nginx(主LB):192.168.15.132 nginx(备L
2024-11-22前言 上一节我们已经使用HttpClient简单的实现了RPC远程调用 这节主要介绍下如何使用服务治理来管理RPC远程调用 最后通过HttpClient实现RPC案例 一、服务治理概念 1.什么是服务治理 在RPC远程调用过程中,服务与服务之间依赖关系非常大,服务Url地址管理非常复杂,所以这时候需要对我们服务的url实现治理,通过服务治理可以实现服务注册与发现、负载均衡、容错等 2.微服务架构的生产者和消费者 生产者:提供接口 消费者:调用生产者提供的接口 3.分布式服务器
2024-11-22前言 过滤器(Filter)和拦截器(Interceptor)都是用于在Web应用程序中处理请求和响应的组件,但它们在实现方式和功能上有一些区别。 区别 1. 实现方式: - 过滤器是基于Servlet规范的组件,通过实现javax.servlet.Filter接口来定义。过滤器可以在请求被处理之前和响应被发送到客户端之前进行操作。 - 拦截器是基于Java的反射机制,通过实现HandlerInterceptor接口来定义。拦截器可以在请求被处理之前、处理过程中和响应被发送到客户端之前进行操作。
2024-11-22之前介绍了SpringBoot集成Jpa的简单使用,接下来介绍一下使用Jpa连接数据库对数据进行排序、分页、条件查询和过滤操作。首先创建Springboot工程并已经继承JPA依赖,(https://www.cnblogs.com/eternality/p/17391141.html) 1、排序查询 通过findAll方法的Sort类进行排序,根据实体类字段进行排序。descending降序,ascending升序,默认不填为ascending升序。 List<User> mapperAll
2024-11-22很经常需要对字符串进行解析,解析中间大多是使用空格或者TAB或者制表符进行分割的。但是具体多少个空格很难量化。 在Python语言中我们只需要不带参数就可以轻松分割,比如: a = ' a b c d e' print(a.split()) //get return [a, b, c, d, e] 最近在golang里面也是碰到了这样的问题,但是使用方式貌似不太对 错误用法: 错误用法1: a := "a b c d" res := strings.Split(a, "
2024-11-22以redis为例,连数据库、连mq操作也一样 步骤 1: 添加Jasypt依赖 在Maven项目的pom.xml中添加如下依赖: <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.4</version> <!-- 版本自己挑 --> </dependency> 步骤 2: 加密R
2024-11-22前面搭建了Django项目的基本框架,并且完成HttpResponse返回data 下面继续框架的了解 1.路由模块化 前面说到了Django项目为一个project,一个project中可含有多个app,每个app有独立的views。 那么对于独立的app,是否可以为每个app配置一个urls呢 这就需要使用Django的模块化路由 1.在新的app中新建urls.py文件,代码如下 from django.urls import path from . import views app_n
2024-11-22一.使用链表实现队列 package Algorithm import ( "container/list" "errors" "fmt" "sync" ) type Queue struct { list *list.List mutex sync.Mutex } func GetQueue() *Queue { return &Queue{ list:list.New(), } } func (queue *Queue) Push(data interface{})
2024-11-22