springboot 项目启动时加载数据库数据

在实际项目中,很多时候会有这样的需求,在项目启动时加载数据库中公共配置数据到内存,这个过程只执行一次,之后都从内存中读取配置,在传统的 ssm 框架中,使用静态块完成这一操作,在 springboot 框架中如何加载?请看下文

在 springboot 框架中非常简单,只需要一个 @PostConstruct 注解即可,代码如下

package com.wt.tmp;

import com.wt.bean.Userinfo;
import com.wt.dao.UserinfoDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

@Slf4j
@Service
public class AllocationIp {

    private static CopyOnWriteArrayList<Account> accounts = new CopyOnWriteArrayList<Account>();

    @Autowired
    private UserinfoDao userinfoDao;

    @PostConstruct
    public void init(){
        log.info("项目启动中,加载用户数据");
        List<Userinfo> list = userinfoDao.findAll();
        list.forEach(v -> {
            Account account = new Account();
            account.setName(v.getId());
            account.setFlag(false);
            accounts.add(account);
        });
        log.info("项目启动中,加载用户数据完成");
    }

}
发布了244 篇原创文章 · 获赞 109 · 访问量 44万+

猜你喜欢

转载自blog.csdn.net/wsjzzcbq/article/details/103458323