发表于: 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是利用反射和getter和setter方法进行读取的,如果不想因为getter和setter方法来影响存储,就要使用注解来定义被序列化的对象。
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. 暴露很多问题,尽快解决,今天没什么进度
评论