简单写了一个demo,熟悉下springIOC.
大概流程:创建一个实体类交给IOC管理,通过postman请求接口向实体类中塞数据,然后使用定时任务非同步的从实体类中取数据对数据进行操作。
1.创建实体类
@Component
public class UserBean implements Serializable{
private static final long serialVersionUID =1L;
private Map<String ,String> userMapPojo = new HashMap<>();
public Map<String, String> getUserMapPojo() {
return userMapPojo;
}
public void setUserMapPojo(Map<String, String> userMapPojo) {
this.userMapPojo = userMapPojo;
}
}
这里可以在启动类中Bean 一个UserBean ,启动项目时就把这个实体类交给ioc容器管理。
@Bean
public UserBean userBean(){
return new UserBean();
}
2.写一个controller手动向实体类中的数据结构塞入数据:
@RestController
public class test {
@Resource
private UserBean userBean;
@PostMapping("/setUserPojo")
public String setUserPojo(String key,String value){
userBean.getUserMapPojo().put(key,value);
return "已存入数据";
}
}
postman请求
3.数据结构中已经有数据,通过注入将bean注入到定时任务里,在定时任务里打印出来请求的数据
@Component
public class testShcedule {
@Resource
private UserBean userBean;
@Scheduled(cron = "0/3 * * * * ? ")
public void test(){
String s = userBean.getUserMapPojo().get("waw");
System.out.println("->" + s);
userBean.getUserMapPojo().clear();
System.out.println("-->" + s);
}
}
打印结果
网友评论