配置方式
命令行方式
命令行方式是一种外部配置的方式,在执行java -jar命令时可以通过 --spring.profiles.active=test的方式进行激活指定的profiles列表。
使用方式如下所示:
|
1 |
java -jar order-service-v1.0.jar --spring.profiles.active=dev |
系统变量方式
需要添加一个名为…
命令行方式是一种外部配置的方式,在执行java -jar命令时可以通过 --spring.profiles.active=test的方式进行激活指定的profiles列表。
使用方式如下所示:
|
1 |
java -jar order-service-v1.0.jar --spring.profiles.active=dev |
需要添加一个名为…
如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思路. 但是随着集合中元素的增加,我们需要的存储空间越来越大,检索速度也越来越慢(O(n),O(logn))。不过世界上还有一种叫作散列表(又叫哈希表,Hash table)的数据结构。它可以通过一个Hash函数将一个元素映射成一个位阵列(Bit …
这几天优化了一下之前写的一个springboot kafka组件。比较起原生的spring-kafka来,我希望能够简化kafka的使用,可以更聚焦于具体的消息处理逻辑。
接下来的内容是这个组件的用法。
这个组件已经提交到了maven中央仓库,可以直接通过依赖的形式引入:
|
1 2 3 4 5 |
<dependency> <group |
之前有写过springboot缓存应用的说明(《springboot入门01 – 缓存的使用》)。不过实际的场景有时候会比较复杂一些,比如:需要同时使用redis和caffine来做多级缓存,或者需要在通用配置外应用一些个性化的配置。使用多个CacheManager来分别管理不同的缓存是应对这种问题的一个常规方案。
接下来介绍下如何实现多CacheManage…
随业务量增长,数据库读写分离是迟早要面临的问题。另外,公司在上规模后一般也会要求统一采用主从分布式数据库。
我习惯的处理方案是在应用层进行隔离:即将以写为主的业务放在一个应用上,以读为主的业务放在其他应用上。这应该算是最简单粗暴的解决方案了,却也能帮我应对90%需要读写分离的场景。不过总还有10%的特殊场景需要思考下怎样在应用内实现读写分离。
在应用内做读写…
工程中在使用POI导出Excel数据,某次因为导出的数据量比较大就报了下面的错误:
|
1 2 3 4 |
java.lang.IllegalArgumentException: Invalid row number (65536) outside allowable range (0..65535) at org.apache.poi.hssf.usermodel.HSSFRow.setRow |
最近的工作涉及到了生成xml文件并上传到AWS存储服务S3这样的处理。期间遇到了两个问题,简单记录下:
springboot的版本是2.1.9.RELEASE,读写xml文件使用的是Dom4J,版本是2.1.3。逐个说明下遇到的这几个问题。
现阶段是将x
简单记录一下在Springboot中上传文件到AWS S3存储服务的代码。
在application.xml中添加aws相关配置:
|
1 2 3 4 5 6 |
custom: aws: access-key: CHOBITACCESSKEY secret-key |
在使用jackson处理json时遇到了反斜杠相关的问题。比如我们从数据库或文件中读到了这样的一个json字符串:
|
1 |
{"text":"Hello \World!"} |
可以看到在World前面有一个反斜杠。因为这个反斜杠,JetBrains IDEA会提示这是一个错误的字符串,使用jakcson处理这个json字符串时也会报错,错误信息如下:
|
1 2 3 4 5 6 7 8 9 10 1 |
如果MySQL表的一些字段被设置为不允许为空,使用MyBatis写入的数据中相应字段的值是null就有可能会报类似下面的错误:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
org.springframework.dao.DataIntegrityViolationException: ### Error updating database. C |