使用Lettuce客户端或者redis连接变化时的触发事件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

@Configuration
@EnableCaching
public class CacheConfig {

@Bean
public RedisConnectionFactory redisConnectionFactory() {

RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
config.setHostName("127.0.0.1");
config.setPort(11);
config.setPassword("root");

return new LettuceConnectionFactory(config);
}

@Primary
@Bean(name = "redisTemplate")
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();

template.setConnectionFactory(factory);

StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
template.setKeySerializer(stringRedisSerializer);

template.setHashKeySerializer(stringRedisSerializer);

GenericJackson2JsonRedisSerializer redisSerializer = new GenericJackson2JsonRedisSerializer();
template.setValueSerializer(redisSerializer);

template.setHashValueSerializer(redisSerializer);
return template;

}

@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {

RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(
new GenericJackson2JsonRedisSerializer())).disableCachingNullValues();

return RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(cacheConfiguration).build();
}
}

Windows下bat脚本文件编写

先给个实例来表示 使用杀死 指定端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
@echo off
set default_port=8080
set /p port=type need killed port (press enter for default port %default_port%): %=%
if "%port%"=="" set "port=%default_port%"
rem set /p port=type need killed port:

for /f "tokens=5 delims= " %%a IN ('netstat -a -n -o ^| findstr :%port%.*LISTENING') do (
set pid=%%a
)
if not defined pid (
echo not found port %port%
) else (
taskkill /F /pid %pid%
echo already kill %port%
)


set /p port=type need killed port:
for /f "tokens=5 delims= " %%a IN ('netstat -a -n -o ^| findstr :%port%.*LISTENING') do (
set pid=%%a
)
if not defined pid (
echo not found port %port%
) else (
taskkill /F /pid %pid%
echo already kill %port%
)



set /p port=type need killed port:
for /f "tokens=5 delims= " %%a IN ('netstat -a -n -o ^| findstr :%port%.*LISTENING') do (
set pid=%%a
)
if not defined pid (
echo not found port %port%
) else (
taskkill /F /pid %pid%
echo already kill %port%
)


pause

Geotools中关于filter和ECQL的介绍

filter和ECQL的介绍

在geotools中有datastore就需要对应数据源的查询这边是基于opengis定义的接口来定义现在先看下

filter这个类的介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public interface Filter {

//使用Filter.INCLUDE过滤集合将会返回原始集合。
IncludeFilter INCLUDE = new IncludeFilter();

//使用Filter.EXCLUDE过滤集合将会返回空集合。
ExcludeFilter EXCLUDE = new ExcludeFilter();


//给定一个对象,确定此过滤器对象所表示的测试是否通过。如果测试通过,则返回true,否则返回false
boolean evaluate(Object object);

//接受一个访问者(FilterVisitor)。实现所有子接口必须具有以下内容的方法:
//visitor.visit(this, extraData);
Object accept(FilterVisitor visitor, Object extraData);
}

java中io的优化方向

1. 使用缓冲区

在读写文件时,每次都直接操作磁盘会导致性能降低。因此,可以通过使用缓冲区来减少对磁盘的操作次数,从而提高性能。Java 中提供了 BufferedInputStreamBufferedOutputStream 类来支持缓冲区的操作。

1
2
3
4
java复制代码// 创建输入流缓冲区
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
// 创建输出流缓冲区
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));

chatgpt介绍

名词解析

AI :全称Artificial Intelligence,是一种模拟人类智能行为的技术或系统,涵盖了许多不同的技术和方法,包括机器学习、自然语言处理、计算机视觉等,可用于许多领域,如自动驾驶、机器人、医疗诊断等。

ML :全称Machine Learning 是一种人工智能领域的技术,通过从数据中学习模式和规律来实现智能化决策和行为。机器学习可以分为监督学习、无监督学习和强化学习等不同类型,广泛应用于自然语言处理、计算机视觉、金融、医疗等领域。

Deep Learning : 一种基于神经网络的机器学习方法,通过模拟人脑的神经网络结构,实现对复杂模式和规律的学习和识别,被广泛应用于自然语言处理、计算机视觉、语音识别等领域,是实现人工智能的重要技术之一。

mybatis回顾兼顾分析Invalid bound statement (not found)的问题

项目中需要使用mybatis原生,之前都是使用mybatis plus或者mybatis pagehelper,突然使用偏原生,主要是xml中的简单增删改查都需要手动机械的实现真的是相当死板,搜索一下发型mybatisx这个插件非常好用,没有考虑mybatis pro那个插件插件使用介绍在下面,之前很多mybatis代码生成需要mybatis maven插件配置一堆真的是非常不友好,使用这个插件只需要利用idea连接对应插件即可使用,配置下后生成对应的xml和mapper代码和domain/entity对象,简直是神器.

mybatis—mybatis插件根据接口自动生成xml文件_mybatis xml 生成插件_任何时候都要勇敢的博客-CSDN博客

后面依照这个配置一步一步走下去没什么问题