在项目中做文件下载时的收获
1.SpringBoot的异步操作:
@Async
该注解用于在想要开启异步操作的类上添加,要想使该注解生效,还需在启动类加上下列注解
@EnableAsync //开启异步操作
添加该注解后
会生成 一个 默认线程池,使用该线程池去完成异步操作。
默认使用Spring创建ThreadPoolTaskExecutor。
默认核心线程数:8,
最大线程数:Integet.MAX_VALUE,
队列使用LinkedBlockingQueue,
容量是:Integet.MAX_VALUE,
空闲线程保留时间:60s,
线程池拒绝策略:AbortPolicy。
可能会出现的问题:
并发情况下,会无线创建线程
解决办法:自定义配置参数,或者自定义线程池
1.自定义线程池时,在注解@Async后添加(“myExecutor”)即可使用自己的线程池
“myExecutor” 为自己创建的线程池,
2.添加自定义参数,在SpringBoot中该注解默认只有一个线程池,在配置文件中添加如下参数。
.spring:
task:
execution:
pool:
max-size: 6
core-size: 3
keep-alive: 3s
queue-capacity: 1000
thread-name-prefix: name
这里各项参数作用不在赘述。
2.freemaker的简单操作
<#if townName?has_content>
where town_name in (
<#list townName?split(",") as type>
'${type}'
<#if type_has_next>,</#if>
</#list>
)
</#if>
这段代码,首先判断区名称是否为空,不为空的情况下,将区名称集合分隔成
单个的 类型
3.File类的一些知识
1.file.separator
其实 File.separator 的作用相当于 ’ \ ’
在 windows 中 文件文件分隔符 用 ’ \ ’ 或者 ’ / ’ 都可以
但是在 Linux 中,是不识别 ’ \ ’ 的,而 File.separator 是系统默认的文件分隔符号,在 UNIX 系统上,此字段的值为 ’ / ’
在 Microsoft Windows 系统上,它为 ’ \ ’ 屏蔽了这些系统的区别。
所以用 File.separator 保证了在任何系统下不会出错。
此外 File 类还有:
1、separatorChar
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符
2、pathSeparatorChar
与系统有关的路径分隔符,为了方便,它被表示为一个字符串
3、pathSeparator
此字符用于分隔以路径列表形式给定的文件序列中的文件名
在 UNIX 系统上此字段为 ' : '
在 Microsoft Windows 系统上,它为 ' ; ';