学习进度4/13

📅 2026/7/4 6:54:48 👁️ 阅读次数 📝 编程学习
学习进度4/13

无法解析符号'Resource':导包错误,把 javax.annotation.Resource 换成 Spring 的注解
定时任务没开启:启动类需要加 @EnableScheduling
步骤 1:修改 TaskUtil.java(直接复制完整代码)
java
运行
package com.demo.util;
import com.demo.entity.SysUser;
import com.demo.mapper.SysUserMapper;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;

@Component
public class TaskUtil {
// 改用Spring自带@Autowired注入,解决Resource报错
@Autowired
private SysUserMapper sysUserMapper;

@Scheduled(cron = "0 0 1 * * ?")
public void clearInvalidUser() {List<SysUser> userList = sysUserMapper.listNoLogin30Days();LocalDateTime now = LocalDateTime.now();for(SysUser user : userList) {LocalDateTime lastLogin = user.getLastLoginTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();long days = Duration.between(lastLogin, now).toDays();if(days >= 33) {user.setStatus(0);sysUserMapper.updateById(user);}}
}

}
步骤 2:修改启动类 DemoApplication.java,开启定时任务
java
运行
package com.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@MapperScan("com.demo.mapper") // 扫描Mapper接口
@EnableScheduling // 开启定时任务,必须加
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}