spring配置扫描多个包问题解析
spring 配置扫描多个包,有时候我们希望不同功能类型的包放在不同的包下,这就需要
<!-- ⾃动扫描该包,使 SpringMVC 为包下⽤了@controller注解的类是控制器 -->
<context:component-scan base-package="com.ller" />
<context:component-scan base-package="com.weixiao.listener" />
有时候我们可能遇到奇怪的问题,
新建了⼀个包,在这个包下⾯新建了⼀个类,也添加了注解,但启动的时候就是扫描不到,⽽其它的类⼜正常!
这就是你新建的包没有配置为⾃动扫描的原因。
⽐如我在 com.weixiao.listener 包下新建的⼀个类:
package com.weixiao.listener;
import javax.servlet.ServletContext;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import t.ApplicationContext;
import t.ApplicationContextAware;
import t.ApplicationListener;
import t.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
import org.t.ServletContextAware;
@Component("StartupListener")
public class StartupListener implements ApplicationContextAware, ServletContextAware, InitializingBean,
ApplicationListener<ContextRefreshedEvent> {
protected Logger logger = Logger(getClass());
@Override
public void setApplicationContext(ApplicationContext ctx) throws BeansException {
logger.info("\r\n\r\n\r\n\r\n1 => StartupListener.setApplicationContext");
}
@Override
public void setServletContext(ServletContext context) {
logger.info("\r\n\r\n\r\n\r\n2 => StartupListener.setServletContext");
}
@Override
public void afterPropertiesSet() throws Exception {
logger.info("\r\n\r\n\r\n\r\n3 => StartupListener.afterPropertiesSet");
}
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
logger.info("\r\n\r\n\r\n\r\n4.1 => ApplicationEvent");
logger.info("\r\n\r\n\r\n\r\n4.1 => " + ApplicationContext().getParent());
logger.info("\r\n\r\n\r\n\r\n4.1 => " + ApplicationContext().getDisplayName());
if (ApplicationContext().getParent() == null) {
logger.info("\r\n\r\n\r\n\r\n4.2 => ApplicationEvent");
} else{
logger.info("\r\n\r\n\r\n\r\n4.4 => " + ApplicationContext().getParent().getDisplayName());
}
if (ApplicationContext().getDisplayName().equals("Root WebApplicationContext")){
logger.info("\r\n\r\n\r\n\r\n4.3 => ApplicationEvent");
}springmvc选择题
}
}
关于 component-scan,我们来看 spring framework 开发⼿册中的⼀段话:
Spring 2.5引⼊了更多典型化注解(stereotype annotations): @Component、@Service和 @Controller。@Component是所有受Spring管理组件的通⽤形式;⽽@Repository、@Service和 @Controller则是@Component的细化,⽤来表⽰更具体的⽤例(例如,分别对总结
以上就是本⽂关于spring配置扫描多个包问题解析的全部内容,希望对⼤家有所帮助。感兴趣的朋友可以继续参阅本站:、等,有什么问题可以随时留⾔,⼩编会及时回复⼤家的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论