发表于: 2018-03-15 23:51:23

3 567


今日完成:

1.       xml文件读取多个properties文件

<context:property-placeholder location="classpath:cache/redis.properties" ignore-unresolvable="true"/>

同个模块中如果出现多个context:property-placeholder location properties文件后,运行时出现Could not resolve placeholder 'key' in string value${key}。原因是在加载第一个context:property-placeholder时会扫描所有的bean,而有的bean里面出现第二个 context:property-placeholder引入的properties的占位符${key},此时还没有加载第二个property-placeholder,所以解析不了${key}。解决办法一,可以将通过模块的多个property-placeholder合并为一个,将初始化放在一起。方法二,添加ignore-unresolvable="true",这样可以在加载第一个property-placeholder时出现解析不了的占位符进行忽略掉。

测试使用ignore-unresolvable="true"不成功????

1.  <context:property-placeholder     

2.          location="属性文件,多个之间逗号分隔"    

3.          file-encoding="文件编码"    

4.          ignore-resource-not-found="是否忽略找不到的属性文件"    

5.          ignore-unresolvable="是否忽略解析不到的属性,如果不忽略,找不到将抛出异常"    

6.          properties-ref="本地Properties配置"    

7.          local-override="是否本地覆盖模式,即如果true,那么properties-ref的属性将覆盖location加载的属性,否则相反"    

8.          system-properties-mode="系统属性模式,默认ENVIRONMENT(表示先找ENVIRONMENT,再找properties-ref/location的),NEVER:表示永远不用ENVIRONMENT的,OVERRIDE类似于ENVIRONMENT"    

9.          order="顺序"    

10.         /> 

2.       redis序列化

spring-data-redis的序列化类有下面这几个:

GenericToStringSerializer: 可以将任何对象泛化为字符串并序列化

Jackson2JsonRedisSerializer: JacksonJsonRedisSerializer实际上是一样的

JacksonJsonRedisSerializer: 序列化object对象为json字符串

JdkSerializationRedisSerializer: 序列化java对象

StringRedisSerializer: 简单的字符串序列化

1,使用JdkSerializationRedisSerializer序列化

JdkSerializationRedisSerializer序列化的话,被序列化的对象必须实现Serializable接口。

在存储内容时,除了属性的内容外还存了其它内容在里面,总长度长,且不容易阅读。

2,使用JacksonJsonRedisSerializer序列化

如果需要保存对象为json的话推荐使用JacksonJsonRedisSerializer,它不仅可以将对象序列化,

还可以将对象转换为json字符串并保存到redis中,但需要和jackson配合一起使用。

JacksonJsonRedisSerializer序列化的话,被序列化的对象不用实现Serializable接口。

Jackson是利用反射和gettersetter方法进行读取的,如果不想因为gettersetter方法来影响存储,就要使用注解来定义被序列化的对象。

Jackson序列化的结果清晰,容易阅读,而且存储字节少,速度快,推荐。

3,使用StringRedisSerializer序列化

一般如果key-value都是string的话,使用StringRedisSerializer就可以了

3.       jar包冲突

                                             

spring-data-redis这个jar包不能使用高于2的版本,否则会引起jar包冲突

<dependency>
    <groupId>
org.springframework.data</groupId>
    <artifactId>
spring-data-redis</artifactId>
    <version>
1.8.6.RELEASE</version>
   
<!--<version>2.0.5.RELEASE</version>-->
</dependency>

 

明日计划:

1.       理解jar包冲突及其解决办法

2.       xml读取多个配置文件方法

3.       redis+aop

遇到的问题:

1.       如何分析jar包冲突并解决

收获:

1.       暴露很多问题,尽快解决,今天没什么进度



返回列表 返回列表
评论

    分享到