ApplicationListener 实现项目初始化后默认加载部分的数据

项目启动的时候有时候需要加载一些项目配置数据如网站地址,发送短信,邮件的发件人用户名密码等config数据,或者是系统的错误码提示数据等。可通过配置ApplicationListener的实现类来实现;

@Component
public class DataSourceInitListener implements ApplicationListener<ContextRefreshedEvent> {//ContextRefreshedEvent为启动事件
 
    private static final Logger LOGGER = LoggerFactory.getLogger(DataSourceInitListener.class);
 
    @Autowired
    private SystemConfigService systemConfigService;
    @Autowired
    private ItemService itemService;
    @Autowired
    private SystemResultService systemResultService;
 
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        if(event.getApplicationContext().getParent() == null) {//判断是否执行过,执行过则不再执行
            LOGGER.info("初始化systemConfig数据");
            systemConfigService.initConfig();
            LOGGER.info("初始化返回消息数据");
            systemResultService.initResult();
            LOGGER.info("系统初始化结束...........");
        }
    }
 
}

在调用的init方法中可把这些数据保存到redis中,

@Override
    public void initConfig() {
        List<SystemConfig> list = mapper.getList(new SystemConfig());
        for (SystemConfig config:list) {
            String key = Constant.REDIS_SYSTEM_CONFIG + config.getSystemCode();
            RedisUtil.set(key, config.getSystemValue());
        }
    }

当需要使用这些参数时,根据具体的key通过调用redis的get方法,就可以把参数具体的值取出;

博客转自:  https://blog.csdn.net/java_green_hand0909/article/details/79741764

Spring Boot 应用的启动原理主要涉及以下几个关键组件和步骤: 1. `@SpringBootApplication` 注解:这个注解是一个复合注解,它包含了 `@Configuration`、`@EnableAutoConfiguration` 和 `@ComponentScan`。这意味着 Spring Boot 应用会扫描带有 `@Component`、`@Service`、`@Repository`、`@Controller` 等注解的,并将它们注册为 Spring 容器的 Bean。 2. `SpringApplication.run()` 方法:这是启动 Spring Boot 应用的主要入口点。`SpringApplication` 会负责引导整个应用的启动过程。在调用 `run()` 方法时,它会执行以下操作: - 创建 `SpringApplication` 实例。 - 配置应用的上下文初始化参数。 - 加载应用的 `ApplicationContext`。 - 触发 `ApplicationContextInitializer` 和 `ApplicationListener` 的注册。 - 将主配置(即包含 `@SpringBootApplication` 注解的加载为配置源。 - 启动 `Spring` 应用上下文。 - 加载并调用所有 `CommandLineRunner` 和 `ApplicationRunner` 的 `run` 方法。 3. `SpringFactoriesLoader`:这是 Spring Boot 自动配置的核心。`SpringFactoriesLoader` 的作用是在应用的 `META-INF/spring.factories` 文件中加载所有配置好的工厂,并实现自动装配。 4. `@EnableAutoConfiguration`:这个注解会触发 Spring Boot 的自动配置机制。Spring Boot 会根据添加的依赖和 `spring.factories` 中定义的配置,自动配置 Spring 应用上下文。 5. `Banner` 的打印:在 Spring Boot 应用启动时,会默认打印一个 ASCII 形式的横幅(Banner),这个横幅可以在 `application.properties` 或 `application.yml` 文件中通过设置 `spring.main.show-banner` 来关闭。 6. 应用监听器:Spring Boot 会在应用启动的各个阶段发布相应的事件,监听器可以监听这些事件并进行响应。 7. Spring Boot Actuator:如果应用中包含了 Actuator 相关依赖,它还会添加一些用于监控和管理应用的端点(Endpoint)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值