一定要扫描这个工具类,否则是不会生效的,因为有注解
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--启动并扫描service的注解,否则controller中的autowired无效-->
<mvc:annotation-driven/>
<!--扫描service-->
<context:component-scan base-package="com.xjj.service"/>
<!--扫描util-->
<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();
}
}
}