Spring SessionFactory创建域对象自动扫描

时间:2011-12-21 16:28:47

标签: java hibernate spring dependency-injection

在我的spring dao配置xml中,我目前必须手动列出域类名称。是否有任何方法可以自动执行此操作,以便在创建新类时无需手动列出域类?

为了更好地了解我想要做什么,使用类似于组件扫描或类似的东西

当前代码

<bean id="daoSessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="applicationDataSource" />
    <property name="annotatedClasses">
        <list>
            <value>com.greenwhich.application.domain.Driver</value>
            <value>com.greenwhich.application.domain.DriverRealTimeCurrentLocation</value>
            <value>com.greenwhich.application.domain.Journey</value>
            <value>com.greenwhich.application.domain.Customer</value>
            <value>com.greenwhich.application.domain.SystemConstants</value>
            <value>com.greenwhich.application.domain.DriverRequest</value>              
            <value>com.greenwhich.application.domain.Account</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

我只需要自动检测“annotatedClasses”属性下的值

有没有办法实现这个?到目前为止,我已经尝试在“annotatedClasses”属性中插入一个组件扫描,搜索“Entity”注释,该注释不起作用

非常感谢任何帮助

1 个答案:

答案 0 :(得分:4)

您应该能够将annotatedClasses属性替换为:

<property name="packagesToScan" value="com.greenwhich.application.domain" />

作为会话工厂配置的一部分。