启动SSM项目时自动执行方法

一定要扫描这个工具类,否则是不会生效的,因为有注解


<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
    <mvc:annotation-driven/>
    
    <context:component-scan base-package="com.xjj.service"/>
    
    <context:component-scan base-package="com.xjj.util"/>
    
    <import resource="classpath:spring/Spring-*.xml"/>
beans>
package com.xjj.util;

import com.xjj.controller.InitController;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Service;

@Service
public class InitListener implements ApplicationListener<ContextRefreshedEvent> {
    public final static String ROOT="Root WebApplicationContext";
    /**
     * 启动项目时会自动调用这个方法
     * @param contextRefreshedEvent
     */
    @Override
    public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
        if (ROOT.equals(contextRefreshedEvent.getApplicationContext().getDisplayName())) {
            //获取容器,读取核心配置类
            ClassPathXmlApplicationContext classPathXmlApplicationContext=new ClassPathXmlApplicationContext("spring/ApplicationContext.xml");
            //获取你要操作的类和类的方法
            //1、获得initController的bean
            InitController initController=(InitController) classPathXmlApplicationContext.getBean("initController");
            //2、执行初始化的方法
            initController.init();
        }
    }
}

你可能感兴趣的:(#,SSM)