`
soartju
  • 浏览: 247484 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

让人疯掉的spring2.0 annotatedpackages

阅读更多

Keywords:spring2.0,annotatedPackages

 

最近在做多数据库支持访问,使用spring的配置方式,在 junit下测试没有问题,但是启动平台就加载不到实体jar包,spring配置文件如下:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">       
        <property name="dataSource" ref="dataSource" />       
        <property name="annotatedPackages">
            <list>
                <value>cn.ac.iscas.core.entity</value>
            </list>
        </property>
...
 

 

经过反复试验,类包始终加载不到,hibernate访问数据库时,一直报not mapped entity。

为何在junit下没有问题,但在平台启动环境下就是不行,换用实体工具的 AnnotationFactory试验,

 


<bean id="sessionFactory" class="cn.ac.intec.entity.orm.AnnotationFactory">       
        <property name="dataSource" ref="dataSource" />       
        <property name="annotatedPackages">
            <list>
                <value>cn.ac.iscas.core.doors</value>
            </list>
        </property>
...

 


结果还是无法加载类包,数据库中无法自动创建表。

无奈之下,查看实体工具源代码,结果发现
AnnotationFactory是我们自己的实现,重写了 setAnnotatedPackages(String[] annotatedPackages),而这个函数就是加载类包及自动搜索annotated class的,但是,这个方法依赖于原有的Appcontex,对于重新定义的Spring BeanFactory,他是无法自动去帮助加载类包的。(原来的实体工具没考虑到多数据库的扩展:))

继续无奈!最终,总算在Internet和google的帮助下,查到spring 2.0对annotatedPackages的支持不好,基本成功不了。好在类不是很多,用annotatedClasses方式是可以的,于是修改配置 文件如下:


<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">       
        <property name="dataSource" ref="dataSource" />       
       
        <property name="annotatedClasses">
            <list>
                <value>cn.ac.iscas.core.doors.Module</value>
                <value>cn.ac.iscas.core.doors.Basecompare</value>
                <value>cn.ac.iscas.core.doors.Baseline</value>
                <value>cn.ac.iscas.core.doors.BaselinePK</value>
                <value>cn.ac.iscas.core.doors.Enumerationdata</value>
                <value>cn.ac.iscas.core.doors.Modreqproperty</value>
                <value>cn.ac.iscas.core.doors.Modulereqstat</value>
                <value>cn.ac.iscas.core.doors.Property</value>
                <value>cn.ac.iscas.core.doors.Reqinfo</value>
            </list>
        </property>
...
 


再次启动平台,一切问题都解决了~~~

浪费了我一下午3小时+早晨1小时啊

总结:spring2.0自带的AnnotationSessionFactoryBean不好用,用 annotatedClasses可以解决问题,但只适合class较少的情况,如果class比较多,还是自己实现 AnnotationSessionFactoryBean的子类,自己去遍历annotatedClass比较好。

 

 

 另:Spring 2.5.6中,增加了< property  name ="packagesToScan"  value ="com.**.bo" /> , 总算是解决了自动扫描类包的问题,相关资料请参考:

《Spring 2.5.6新特性之packagesToScan》

《Spring下使用 Hibenrate annotation》

 

欢迎大家留言支持:)

分享到:
评论

相关推荐

    Spring2.0宝典源代码

    《Spring2.0宝典源代码》是一份珍贵的学习资源,由知名作者李刚编写,旨在深入解析Spring框架的2.0版本。这份源代码集合是配合书籍《Spring2.0宝典》使用的,读者可以通过实际操作代码来理解和掌握Spring 2.0的核心...

    spring2.0中文手册及使用指南 chm

    Spring 2.0 是一个非常重要的Java框架,它在企业级应用开发中占据了核心地位,尤其是在基于Java的轻量级应用程序上下文(IoC)和面向切面编程(AOP)方面。本手册和使用指南提供了全面的Spring 2.0相关知识,包括其...

    Spring2.0中文教程

    Spring 2.0是Spring框架的一个重要版本,它在Java企业级应用开发中扮演着核心角色。本教程将深入探讨...文档`spring2.0-reference_final_zh_cn.chm`将详细阐述这些概念和技术,帮助你成为一名熟练的Spring开发者。

    SPRING2.0中文文档

    Spring 2.0的AOP增强了切入点表达式,使得定位切点更加灵活,并引入了基于注解的切面定义,让切面编写更加直观。 四、数据访问集成 Spring 2.0在数据访问层提供了对各种持久化技术的集成,包括JDBC、ORM(Hibernate...

    Spring 2.0 spring 2.0 标准API

    Spring 2.0 标准API 用处不大的资源我不发

    spring2.0 中文教程

    Spring 2.0 中文教程 Spring框架是Java企业级应用开发的重要工具,它以其模块化、松耦合和依赖注入为核心,极大地简化了Java应用的构建。在Spring 2.0版本中,引入了许多重要的改进和新特性,使得开发者能够更加...

    spring2.0 jar包

    Spring 2.0版本是Spring发展史上的一个重要里程碑,引入了许多创新和改进,为后继版本奠定了坚实的基础。以下将详细阐述Spring 2.0中的关键知识点: 一、依赖注入(Dependency Injection,DI) 依赖注入是Spring的...

    SPRING2.0开发详解

    ### SPRING2.0开发详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,用于构建企业级应用程序和服务。它最初由Rod Johnson在2004年创建,并随着时间的发展不断壮大和完善。Spring 2.0版本是Spring...

    Spring 2.0 源代码

    Spring 2.0 是Spring框架的一个重要版本,它在Java企业级应用开发中扮演着核心角色。这个版本引入了许多新特性,增强了框架的功能和灵活性。本文将深入探讨Spring 2.0源代码中的关键知识点,帮助开发者理解其内部...

    spring2.0中文参考手册.rar

    《Spring 2.0 中文参考手册》是一个详尽阐述 Spring 框架核心特性和扩展功能的重要资源,尤其对于中文开发者来说,它提供了一条理解 Spring 2.0 版本的关键途径。Spring 是一个广泛应用的 Java 开发框架,以其模块化...

    详尽的Spring2.0学习提纲

    Spring 2.0是Java开发中的一个里程碑,它在企业级应用开发中扮演着至关重要的角色,特别是对于依赖注入(IoC)和面向切面编程(AOP)的支持。本学习提纲旨在为初学者提供一份详尽的Spring 2.0学习指南,帮助他们系统...

    Spring 2.0 中文参考手册

    Spring 2.0 中文参考手册,Spring 2.0 中文参考手册,Spring 2.0 中文参考手册,Spring 2.0 中文参考手册Spring 2.0 中文参考手册,

    spring2.0学习源码

    《Spring 2.0 学习源码》是开发者们深入理解Spring框架核心机制的重要参考资料。这个压缩包包含了Spring 2.0版本的源代码,为程序员提供了宝贵的探索与学习平台。Spring作为Java领域的主流框架,其2.0版本是一个重要...

    spring2.0技术手册_源代码(全十章)

    《Spring 2.0 技术手册》是学习和深入理解Spring框架不可或缺的参考资料,而提供的源代码无疑为开发者提供了亲自动手实践的机会。在这个压缩包中,包含了该手册涉及的全部十章节的源码,这为我们深入研究Spring 2.0...

    Spring2.0技术手册_林信良PDF

    《Spring2.0技术手册_林信良》是一本深入探讨Spring 2.0框架的权威指南,由知名IT专家林信良编写。这本书详细介绍了Spring框架的核心概念、设计原则以及实际应用,对于想要深入了解和掌握Spring 2.0的开发者来说,是...

    spring2.0技术手册.pdf

    ### Spring 2.0 技术手册核心知识点详解 #### 一、Spring 框架简介 Spring 是一个开源框架,最初由 Rod Johnson 创建。它是一个轻量级的控制反转(IoC)容器,用于简化 Java 应用程序的开发。Spring 2.0 版本...

    spring2.0jar包(一)

    spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一)

    Spring2.0技术手册(林信良)_part2

    本书介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者...

Global site tag (gtag.js) - Google Analytics