`

Spring 自动扫描 不支持jar包 <component-scan> 的解决方案

 
阅读更多

近期在用spring3做一个项目,用到了里面的一个自动扫描组件的特性.但是工程分为了好多个小项目,有个统一的开发平台,这个平台的支撑类会被我做成一个jar包被其它几个子工程引用.

 

开发的时候使用的是工厂引用工厂的方式,在eclipse里面的classpath里面把该平台工厂引入即可,避免了每次修改了平台代码都要重新打包的问题.这个方法不是在web project类型,对于web-project,还是需要沿用老办法,即打成jar包,然后让web-project引用进来.

 

这时发现个问题,就是平台下junit测试正常的一些spring bean,到了web-project里面发现无法关联到了.

搞了很久,也上网查了很多资料,一开始以为是要修改<context:component-scan >里面的resource-pattern属性,后来改来改去都解决不了问题.

 

最后发现一个问题,是我们的eclipse自带的jar打包程序,默认打包的时候有个选项<Add directory entries>没有勾选,只要勾选了,就完全没有问题了,无须再对<context:component-scan >进行任何修改了.

 

罪恶的<Add directory entries>选项啊!

 

分享到:
评论
11 楼 qq_15946053 2018-11-28  
基于spring的项目要导出成jar怎么做呢,用eclipse的导出可执行jar的第二选项,找不到命名空间,在eclipse运行时正常的,就是导出的时候无法运行了,https://gitee.com/huangliusong/demo2这有源码,希望您不吝赐教
10 楼 qq_15946053 2018-11-28  
基于spring的项目要导出成jar怎么做呢,用eclipse的导出可执行jar的第二选项,找不到命名空间,在eclipse运行时正常的,就是导出的时候无法运行了,https://gitee.com/huangliusong/demo2这有源码,希望您不吝赐教
9 楼 bf1977 2016-10-25  
用注解@componentscan声明的方式,如何支持扫描jar包里的组件呢
8 楼 爱丶无悔 2014-10-13  
是啊。如果用maven该如何设置呀。纠结了半天。
7 楼 threepi 2013-10-15  
神文!感谢感谢!
6 楼 endual 2013-08-26  
如果我用maven管理的话,请问怎么解决?
5 楼 yangbo 2013-03-29  
同样的道理,如果是用ant打包的jar,要设置 filesonly=false.
4 楼 lzzyok 2012-08-23  
你好,我也遇到这个问题,后来解决了,但是不明日为什么,不知道你有没有答案。
3 楼 yugiohboy 2012-08-21  
我今天高了一天也不能找到我外部实体类的jar,总是说unkowXXXXEception
2 楼 edgar108 2012-06-28  
也遇到这个问题,现在解决了,谢谢了
1 楼 showdy1984 2012-03-24  
遇到同样的问题,纠结死我了。。搞了好几个小时

相关推荐

    Spring 自动扫描 不支持jar包 的解决方案

    NULL 博文链接:https://xinglu.iteye.com/blog/1457029

    ssm整合文档。看着文档自己操作,很简单

    在进行SSM框架整合之前,首先需要确保项目的类路径下已经包含了所有必要的jar包,包括但不限于Spring的核心包、SpringMVC包、MyBatis包以及相关的依赖库。 ##### 2. 整合SpringMVC SpringMVC的整合主要包括配置web...

    springMVC框架搭建及详解

    &lt;context:component-scan base-package="com.example.controller"/&gt; &lt;!-- 视图解析器 --&gt; &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property ...

    SpringMVC框架搭建.pdf

    Spring 2.5.6需要引入spring.jar、spring-webmvc.jar、commons-logging.jar、cglib-nodep-2.1_3.jar等jar包。 Hibernate 3.6.8需要引入hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、antlr-2.7.6.jar、...

    Spring+mybatis

    而MyBatis则是一种优秀的持久层框架,它支持自定义SQL查询语句,并能很好地与Spring集成在一起,为开发者提供了高效的数据访问方案。 #### 二、Spring MVC介绍 Spring MVC是Spring框架的一个模块,专门用于构建Web...

    springmvc+mybatis+oracle

    &lt;context:component-scan base-package="com.example.controller" /&gt; &lt;!-- 自定义拦截器配置 --&gt; &lt;mvc:interceptors&gt; &lt;bean class="com.example.interceptor.MyInterceptor" /&gt; &lt;/mvc:interceptors&gt; &lt;/beans&gt; ...

    [新手-图文]整合ssm框架-从mybatis到spring-mybatis再到ssm-sping-mybatis-spingmvc

    &lt;context:component-scan base-package="cn.abc.controller"/&gt; &lt;/beans&gt; ``` ##### 5.2 配置web.xml 设置`context-param`和`ContextLoaderListener`以启动Spring和Spring MVC。 **示例代码**: ```xml &lt;!-- web....

    maven搭建SSM框架

    &lt;context:component-scan base-package="com.example.ssm.controller" /&gt; ``` 3. **Web.xml 配置**: - 配置`ContextLoaderListener`和`DispatcherServlet`。 - 示例代码如下: ```xml &lt;listener&gt; &lt;listener...

    websocket整合spring

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;servlet&gt; &lt;servlet-name&gt;springMVC&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet...

    springmvc开发webservice接口.docx

    &lt;context:component-scan base-package="com.springmvc.controller" /&gt; &lt;/beans&gt; ``` 4. **配置 web.xml**: 修改 `web.xml` 文件,添加 SpringMVC 的监听器和 Servlet 配置,如下: ```xml &lt;?xml version=...

    spring4-hibernate4-struts2整合

    -- 自动扫描dao和service包 --&gt; &lt;context:component-scan base-package="me.gacl.dao,me.gacl.service"/&gt; &lt;/beans&gt; ``` 4. **创建配置属性文件**(`config.properties`): - 这个文件通常用于存储数据库连接...

    springmvc环境搭建之配置和所需jar包

    2. spring-context.jar:包含Spring的上下文支持,用于处理bean的生命周期和依赖注入。 3. spring-core.jar:Spring的核心库,提供基本的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming...

    SSM三大框架的整合.docx

    &lt;spring.version&gt;4.0.2.RELEASE&lt;/spring.version&gt; &lt;!-- 其他版本配置 --&gt; &lt;/properties&gt; &lt;dependencies&gt; &lt;!-- Spring 核心依赖 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring...

    SpringMVC入门

    - **扫描包含Controller的包**:通过`&lt;context:component-scan&gt;`元素指定需要扫描的包。 - **不处理静态资源**:通过`&lt;mvc:default-servlet-handler/&gt;`让Servlet容器处理静态资源。 - **启用注解驱动**:使用`&lt;mvc:...

    spring-mvc的简单实现

    在这个例子中,"自带jar包"可能指的是包含了Spring MVC框架和其他必要库的JAR文件,这使得我们无需通过构建工具(如Maven或Gradle)来管理依赖。 2. **配置Spring MVC**:创建`web.xml`文件,这是Servlet容器(如...

    SSH全注解环境搭建

    &lt;context:component-scan base-package="com.zhaolongedu"/&gt; ``` - 配置Spring事务管理器: ```xml &lt;bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"&gt;...

Global site tag (gtag.js) - Google Analytics