一、Scheduled 定时任务【1】添加Scheduled相关依赖,它是Spring自带的一个jar包因此引入Spring的依赖:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId&
一、如何定制和修改Servlet容器的相关配置前言: SpringBoot在Web环境下,默认使用的是Tomact作为嵌入式的Servlet容器;【1】修改和server相关的配置(ServerProperties实现了EmbeddedServletContainerCustomizer)例如:修改端口号#通用的Servlet容器设置:修改端口号 server: port: 8081
一、整合基本的 JDBC 与数据源【1】引入 jdbc starter [spring-boot-starter-jdbc] 和 MySQL 驱动。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta
生产者发送数据至 kafka 序列化使用 Avro,消费者通过 Avro 进行反序列化,并将数据通过 MyBatisPlus 存入数据库。一、环境介绍【1】Apache Avro 1.8;【2】Spring Kafka 1.2;【3】Spring Boot 1.5;【4】Maven 3.5; <?xml version="1.0" encoding="UTF-8"?> <proj
2.1.0新特性最低支持jdk8,支持tomcat9对响应式编程的支持,spring-boot-starter-webflux starter POM可以快速开始使用Spring WebFlux,它由嵌入式Netty服务器支持1.5.82.1.0/2.7.0/3.0.0Configuration properties migration当升级到新功能版本时,一些配置可能会重命名或者被移除。Spri
一、Spring Boot应用启动一个Spring Boot应用的启动通常如下:@SpringBootApplication @Slf4j public class ApplicationMain { public static void main(String[] args) { ConfigurableApplicationContext ctx = SpringApp
一、使用spring容器的close方法关闭。可通过在代码中获取SpringContext并调用close方法去关闭容器。使用SpringApplication的exit方法。public static int exit(ApplicationContext context, ExitCodeGenerator... exitCodeGenerators) {
一、Spring 编写国际化时的步骤【1】编写国际化配置文件;【2】使用ResourceBundleMessageSource管理国际化资源文件;【3】在页面使用ftp:message取出国际化内容;二、SpringBoot编写国际化步骤【1】创建i18n目录,并创建login.properties国际化默认配置文件,同时创建login_zh_CN.properties系统就会自动识别到是配置国际
一、什么是Content-TypeContent-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。 在HTTP协议消息头中,使用Content-Type
从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。【思路】:保存文件的方法,记住即可。with .. as ..打开会自动关闭。其他方式打开,别忘了通过代码关闭。path = 'd:/test.txt' with open(path,'w+') as f:f.write('') while 1: c = input() if c=='#': break else: with o
求0—7所能组成的奇数个数。【思路】:没说组成几位数或是否重复使用。假设1-8位都可以,且不能重复使用。直接用排列函数,累加然后去重,就得到答案了。s = [i for i in '01234567'] import itertools arr = [] for i in range(1,9): a = list(itertools.permutations(s,i)) # 长度1-8左右排列 l
2.2.2 pytest装饰器@pytest.fixture:用于定义夹具(fixture),夹具是一种可以在测试用例中重复使用的资源或数据,例如数据库连接、临时文件、模拟对象等。对固件驱动。1. 主要用于准备测试所需的数据、对象、环境等,并在测试结束后进行清理操作,以确保测试之间不会相互影响。2. 通过将常见的测试准备和清理逻辑封装到 fixture 中,您可以在多个测试用例中重复使用,从而避免
接口自动化的实现API:Application Programming Interface接口自动化按照自动化的工具可分为基于接口测试工具的接口自动化eg1:Postman+Newman+git/Svn+Jenkins(基于Javascript语言)接口自动化Postman:创建和发送 API 请求,并对响应进行断言和验证。Newman: Postman 的命令行工具,它允许测试人员在没有界面的情
xxl-job 是什么?XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。设计思想 是将调度行为抽象形成 调度中心 平台,平台本身不承担业务逻辑,而是负责发起 调度请求 后,由 执行器 接收调度请求并执行 任务,这里的 任务 抽象为 分散的 Jo
前提:拿到了相关接口参数,需要确保跑接口自动化的测试用例的接口是已经通过了接口测试一.确定好思路1.确认好设计的思路如什么常用的需要封装如get,post请求,headers,token,cookie,响应内容等。这个主要看公司的框架以及个人思路以及习惯,用的顺手就行。2.创建自动化测试需要的日志,pytest.ini文件配置可在网上随便找找自己喜欢的格式模板。3.确定好是使用excel或者yam
1.安卓开发常用术语介绍IDE (Integrated Development Environment) : 集成开发环境,提供程序开发环境的应用程序,即编程的地方。一般包括代码编辑器、编译器、调试器和图形用户界面,比如Java的InterlliJ IDEA、Python的Jupyter和Pycharm。SDK (Software Development Kit) : 软件开发工具包,辅助开发某一
EXP List 转List场景一 Object是已知对象,单纯去某一个成员变量为List<~>public class Main { public static void main(String[] args) { List<Person> list = new ArrayList<>(); list.add(new Person("张三", 1))
题目001:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n【思路】:学了lambda想耍一下,结果发现官网写的比我还简洁!n =17 fenmu = range(2,n+1,2) if n%2==0 else range(1,n+1,2) s = sum(map(lambda x:1/x,fenmu)) print(
题目001:按位操作学习使用按位与 &学习使用按位或 |学习使用按位异或 ^学习使用按位取反 ~【思路】:大概看了一下资料,按位操作可以通过bin()函数转换为二进制从而实现。感觉二进制的计算如果不是学加密之类的基本用不上。所以这一题,大概写了集合的用法,&、|在python中是集合set()才用的符号两个列表求交集并集,通常也都是转换为集合,然后进行计算的。 # 可迭代变量转换为
001.模仿静态变量的用法【思路】:不是很清楚什么意思,直接看了官网的解答。如果是函数中的局部变量,每次调用函数都会初始化。而类中的变量,创建类的时候初始化,每次执行类中的函数的时候,不会初始化类变量。看起来是想说这么个意思。def varfunc(): var = 0 print('var = %d' % var) var += 1 if __name__ == '__main__': for
题目031:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。【思路】:按照题意要求实现了就行week = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'] inp = '' while 1: arr = [] inp = inp+input('请输入一个字母:')
题目026:利用递归方法求5!def fac(x): if x>1: return x*fac(x-1) else: return x def tm026():【思路】:按题目要求,公式f(n)=n*f(n-1),递归调用求解。print(fac(5))题目027:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。def output(s,l): if l==0: return
题目021:猴子吃桃问题猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。【思路】:第十天num=1个,第九天必然是4个:4/2-1=1,也就是(num+1)*2=4。 做这种题,先用算数式列出来,然后用代码描述就行了。n
题目016:输出指定格式的日期。【思路】:用的不多经常忘,整理了一下参考答案和一些转换import time print(time.time()) # 时间戳 1498539133.655 print(time.localtime()) # 时间元祖 tm_year=2017, tm_mon=6, tm_mday=27, tm_hour=12, tm_min=53, tm_sec=16, tm_w
题目011:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死。问每个月的兔子总数为多少?其实这道题就是斐波那契数列的由来。【思路】:理清思路是关键,理解成满两个月后,每月都能生兔子,就好办了。m1=1 # 满月 m2=0 # 满俩月(下个月生兔子) mm=0 # 可以月月生兔子了 for i in range(1,10): # 过了
题目006:斐波那契数列 程序分析:斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。 【思路】:很多种解法,我是按照分割的方式,每次取列表后两项,然后相加。l = [0,1] for i in range(10): arr = l[-2:] l.append(arr[0]+arr[1]) print(l)题目007:将一个列表的数据复制到另一
volatile-lru:当内存不足执行写入操作时,在设置了过期时间的键空间中,移除最近最少(最长时间)使用的 key。allkeys-lru:当内存不足执行写入操作时,在整个键空间中,移除最近最少(最长时间)使用的 key。(这个是最常用的)volatile-lfu:当内存不足执行写入操作时,在设置了过期时间的键空间中,移除最不经常(最少次)使用的key。allkeys-lf
1、缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是gongji者,gongji会导致数据库压力过大。解决方法: 缓存空对象2、缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力解决方
一、ZSet介绍sorted set 存储有序的元素。每个元素都有个 score,按照 score 从小到大排序。score 相同时,按照 key 的ASCII码排序。操作命令# 添加元素 zadd myzset 10 java 20 php&nbs
String、Hash、Set、List、Zset、Hyperloglog、Geo、Streams一、String最基本也是最常用的数据类型就是String。get和set命令就是String的操作命令,Redis的字符串被叫做二进制安全的字符串(Binary-safe strings)。String可以存储三种类型,INT(整数)、float(单精度浮点数)、string(字符串)。&
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号