springboot 加载完bean之后的初始化

举报
IT 叶新东老师 发表于 2021/12/29 23:18:07 2021/12/29
【摘要】 一般情况下,我们的项目在刚启动的时候就需要初始化一些数据,特别有些是需要查询表的情况下,这时候我们就要用到springboot的初始化了, 我自己的个人网站就用到了这种技术 我们需要实现 CommandLineRunner 接口并在类上面添加 @Component 和 @Order(2) 注解 , 并重写run(...

一般情况下,我们的项目在刚启动的时候就需要初始化一些数据,特别有些是需要查询表的情况下,这时候我们就要用到springboot的初始化了,

我自己的个人网站就用到了这种技术

我们需要实现 CommandLineRunner 接口并在类上面添加 @Component @Order(2) 注解 , 并重写run()方法,springboot会自动扫描这些注解,即可完成初始化,

注意:这个初始化是在springboot加载完了所有bean之后执行的初始化方法,所以我们可以直接使用 @AutoWired 注解进行依赖注入 ,是不是很方便呢?

代码如下:


  
  1. package com.love.app.filter;
  2. import javax.servlet.ServletContext;
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.CommandLineRunner;
  7. import org.springframework.core.annotation.Order;
  8. import org.springframework.stereotype.Component;
  9. import com.love.app.common.CommonConstants;
  10. import com.maven.common.mapper.SystemParamMapper;
  11. import com.maven.common.model.SystemParam;
  12. import com.xd.base.common.utils.StringUtils;
  13. /**
  14. *
  15. * <spring boot初始化>
  16. *
  17. * @version 1.0
  18. * @author 2018年8月5日 下午1:48:44
  19. */
  20. @Component
  21. @Order(2) // 通过order值的大小来决定启动的顺序
  22. public class InitSpringBoot implements CommandLineRunner {
  23. private Logger log = LoggerFactory.getLogger(InitSpringBoot.class);
  24. @Autowired
  25. private SystemParamMapper systemParamMapper;
  26. @Override
  27. public void run(String... args) throws Exception {
  28. try {
  29. systemParamMapper.init();
  30. log.info("springboot初始化完成");
  31. } catch (Exception e) {
  32. log.error("springboot初始化异常", e);
  33. }
  34. }
  35. }

 

文章来源: yexindong.blog.csdn.net,作者:java叶新东老师,版权归原作者所有,如需转载,请联系作者。

原文链接:yexindong.blog.csdn.net/article/details/81430904

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。