关于spring/springmvc的配置文件路径问题:
可以有以下几种写法:
- /WEB-INF/*-context.xml
- com/mycompany/**/applicationContext.xml
- file:C:/some/path/*-context.xml
- classpath:com/mycompany/**/applicationContext.xml
- classpath*:applicationContext.xml
- classpath:app-Beans.xml
解释:(*为通配符,**代表任意多个目录)
- 查询web-info下以-context.xml结尾的配置文件
2、查询com/mycompany下所有包中的applicationContext.xml
3、指定硬盘绝对路径
4、从classpath下查找指定包中的配置文件(仅限于本项目,不包括jar包)
5、查询包括本项目以及项目引用jar包中classpath下或者指定包下的配置文件
classpath:app-Beans.xml
说明:无通配符,必须完全匹配
classpath:App?-Beans.xml
说明:匹配一个字符,例如 App1-Beans.xml 、 App2-Beans.xml
classpath:user//Base-Beans.xml
说明:匹配零个或多个字符串(只针对名称,不匹配目录分隔符等),例如:user/a/Base-Beans.xml 、 user/b/Base-Beans.xml ,但是不匹配 user/Base-Beans.xml
classpath:user//Base-Beans.xml
说明:匹配路径中的零个或多个目录,例如:user/a/ab/abc/Base-Beans.xml,同时也能匹配 user/Base-Beans.xml
classpath:/-Beans.xml
说明:表示在所有的类路径中查找和加载文件名以“-Beans.xml”结尾的配置文件,但重复的文件名只加载其中一个,视加载顺序决定
classpath*:user//-Beans.xml
classpath:/-Beans.xml
说明:“classpath:”表示加载多个资源文件,即使重名也会被加载,比如app1.jar中有一个config-Beans.xml,app2.jar中也有一个config-Beans.xml,这个时候,两个都会加载。
Spring定时器:SpringTask使用
首先要做的:
引入task schemaLocation:
xmlns:tx=“http://www.springframework.org/schema/tx”
xmlns:task=“http://www.springframework.org/schema/task”
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd
配置式:
task:scheduled-task
<task:scheduled ref=“要加定时器的类” method=“类中加定时器的方法” corn=“定时参数配置”/>
</task:scheduled-task>
注解式:
task:annotation-driven/
corn表达式:
*:对应时间区域的每一个时刻。例如 *在分钟字段内,表示每分钟
?:该字符只在日期和星期字段中使用,通常指定为无意义的值,相当于占位符。
-:表达一个范围。如在小时字段上使用10-12 则表示从10到12点(包左包右,10,11,12)
,:表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五
/:x/y表达一个等步长序列,x为起始值,y为增量步长值。如 5/25 在分钟上表示5,30,55,也可以使用 */5 等同于 0/5
L:代表Last,只能在星期和日期中使用。在星期中使用表示星期六,等同于7。在日期中,表示每个月的最后一天。
W:只能出现在日期字段中, 是对前导日期的修饰,表示离该日期最近的工作日。例如12W表示离15号最近的工作日。如果15号是周日,则匹配16号周一。如果15号是周六,则匹配14号周五。匹配日期不能够跨月,如果1号为周六,那么匹配的就是3号周一。W只能指定单一日期,不能指定范围。
LW:在日期字段能使用该组合,代表当月的最后一个工作日。
#:只能在星期字段中使用,表示当月某个工作日。例如6#3 表示当月的第三个星期五。如果当月没有第三个星期五,则不触发。
C:该字符只能在星期和日期字段中使用,代表Calendar。计划所关联的日期,如果日期没有被关联,则相当于日历中的所有日期。例如5C在日期中,相当于日历5日后的第一天,1C在星期中相当于星期日后的第一天。
corn对大小写不敏感。
例子:
@Scheduled(cron = “0 0 1 1 1 ?”)//每年一月的一号的1:00:00 执行一次
@Scheduled(cron = “0 0 1 1 1,6 ?”) //一月和六月的一号的1:00:00 执行一次
@Scheduled(cron = “0 0 1 1 1,4,7,10 ?”) //每个季度的第一个月的一号的1:00:00 执行一次
@Scheduled(cron = “0 0 1 1 * ?”)//每月一号 1:00:00 执行一次
@Scheduled(cron = “0 0 1 ? * MON”) //每周周一 1:00:00 执行一次
@Scheduled(cron=“0 0 1 * * *”) //每天凌晨1点执行一次
笔记来源:https://note.youdao.com/ynoteshare1/index.html?id=a6254e916e699c294c4b887c3bec4f9e&type=note