路泰机电科技体检——数据平台后端
zhaowenxuan
2024-12-18 9449b5f71bd0c20ed9aefd025ee87c69bcdfbd40
src/main/java/com/example/config/RedisConfig.java
@@ -2,6 +2,7 @@
import com.example.utils.FastJson2JsonRedisSerializer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
@@ -15,6 +16,7 @@
import redis.clients.jedis.JedisPoolConfig;
import java.io.*;
import java.util.Map;
import java.util.Properties;
/**
@@ -27,15 +29,13 @@
@Slf4j
public class RedisConfig extends CachingConfigurerSupport {
    @Value ("${config.path}")
    private String url;
    @Value ("${config.dir}")
    private  String path;
    @Autowired
    private ConfigValue configValue;
    @Bean
    @SuppressWarnings(value = {"unchecked", "rawtypes"})
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
        log.info("Initializing RedisTemplate...");
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(connectionFactory);
@@ -50,6 +50,7 @@
        template.setHashValueSerializer(serializer);
        template.afterPropertiesSet();
        log.info("RedisTemplate initialized");
        return template;
    }
@@ -68,81 +69,20 @@
    @Bean
    public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig jedisPoolConfig) {
        JedisConnectionFactory factory = new JedisConnectionFactory();
        Map<String, String> configMap = configValue.getConfigMap();
        // 从文件中读取配置信息
        try {
            FileInputStream fis = null;
            Properties props = new Properties();
            try {
                fis = new FileInputStream(url);
            } catch (FileNotFoundException e) {
                log.info("配置文件找不到 系统正在创建!");
                File f = new File(path);
                if(!f.exists()){
                    f.mkdirs();
                }
                File file = new File(url);
                try {
                    FileWriter fileWriter = new FileWriter(file);
                    fileWriter.write("ip = 你的主数据库连接ip地址\n");
                    fileWriter.write("prot = 你的主数据库连接端口\n");
                    fileWriter.write("name = 你的主数据库连接名称\n");
                    fileWriter.write("username = 你的主数据库连接用户名\n");
                    fileWriter.write("password = 你的主数据库连接密码\n");
                    fileWriter.write("hisenabled = 是否开启 his 从库数据库连接 (从数据源开关/默认关闭 fales)\n");
                    fileWriter.write("\n");
                    fileWriter.write("hisip = 你的 his 数据库连接ip地址\n");
                    fileWriter.write("hisprot = 你的 his 数据库连接端口\n");
                    fileWriter.write("hisname = 你的 his 数据库连接名称\n");
                    fileWriter.write("hisusername = 你的 his 数据库连接用户名\n");
                    fileWriter.write("hispassword = 你的 his 数据库连接密码\n");
                    fileWriter.write("\n");
                    fileWriter.write("pacsenabled = 是否开启pacs从库数据库连接 (从数据源开关/默认关闭 fales)\n");
                    fileWriter.write("pacsip = 你的pacs数据库连接ip地址\n");
                    fileWriter.write("pacsprot = 你的pacs数据库连接端口\n");
                    fileWriter.write("pacsname = 你的pacs数据库连接名称\n");
                    fileWriter.write("pacsusername = 你的pacs数据库连接用户名\n");
                    fileWriter.write("pacspassword = 你的pacs数据库连接密码\n");
                    fileWriter.write("\n");
                    fileWriter.write("lisenabled = 是否开启 lis 从库数据库连接 (从数据源开关/默认关闭 fales)\n");
                    fileWriter.write("lisip = 你的 lis 数据库连接ip地址\n");
                    fileWriter.write("lisprot = 你的 lis 数据库连接端口\n");
                    fileWriter.write("lisname = 你的 lis 数据库连接名称\n");
                    fileWriter.write("lisusername = 你的 lis 数据库连接用户名\n");
                    fileWriter.write("lispassword = 你的 lis 数据库连接密码\n");
                    fileWriter.write("redisIp = 你的redisIp地址\n");
                    fileWriter.write("redisProt = 你的redis端口\n");
                    fileWriter.write("redisIpDatabase = 你的redis链接库\n");
                    fileWriter.write("redisPassword = 你的redis密码\n");
                    fileWriter.write("\n");
                    fileWriter.close();
                    log.info("配置文件创建成功!");
                } catch (IOException ioException) {
                    log.info("配置文件创建失败  请联系管理员手动创建!");
                    ioException.printStackTrace();
                }
                e.printStackTrace();
            }
            props.load(fis);
            fis.close();
            // 获取属性值并赋值
            factory.setPoolConfig(jedisPoolConfig);
            // 设置Redis服务器的地址和端口号
            factory.setHostName(props.getProperty("redisIp"));
            factory.setPort(Integer.parseInt(props.getProperty("redisProt")));
        factory.setHostName(configMap.get("redisIp"));
        factory.setPort(Integer.parseInt(configMap.get("redisProt")));
            // 如果需要密码验证,设置密码
            factory.setPassword(props.getProperty("redisPassword"));
        factory.setPassword(configMap.get("redisPassword"));
            // 设置其他参数,如数据库索引等
            factory.setDatabase(Integer.parseInt(props.getProperty("redisIpDatabase")));
        factory.setDatabase(Integer.parseInt(configMap.get("redisIpDatabase")));
            // 最后,初始化连接
            factory.afterPropertiesSet();
            log.info("redis连接成功!!!");
        } catch (IOException e) {
            log.info("redis连接失败  请联系管理员!");
            e.printStackTrace();
        }
        return factory;
    }