Как получить доступ к bean-компонентам в разных xml-файлах - PullRequest
0 голосов
/ 28 марта 2011

У меня есть три XML-файла в приложении Spring Hibernate

Spring-Security.xml

<security:authentication-manager>
            <security:authentication-provider user-service-ref="customUserDetailsService">

            </security:authentication-provider>
    </security:authentication-manager>

    <!-- Use a Md5 encoder since the user's passwords are stored as Md5 in the database -->
    <bean class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" id="passwordEncoder"/>

    <!-- A custom service where Spring will retrieve users and their corresponding access levels  -->
    <bean id="customUserDetailsService" class="com.vaannila.service.CustomUserDetailsService" >

     </bean>

hibernate-context.xml

enter code here

<!-- Declare a datasource that has pooling capabilities-->   
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
            destroy-method="close"
            p:driverClass="${app.jdbc.driverClassName}"
            p:jdbcUrl="${app.jdbc.url}"
            p:user="${app.jdbc.username}"
            p:password="${app.jdbc.password}"
            p:acquireIncrement="5"
            p:idleConnectionTestPeriod="60"
            p:maxPoolSize="100"
            p:maxStatements="50"
            p:minPoolSize="10" />

<!-- Declare a transaction manager-->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" 
            p:sessionFactory-ref="sessionFactory" />

    <bean id="registrationDAO" class="com.vaannila.dao.RegistrationDAOimpl" >
  <constructor-arg ref="sessionFactory"/>
 </bean>

Теперь в моей весенней безопасности я хочу что-то вроде

<bean id="customUserDetailsService" class="com.vaannila.service.CustomUserDetailsService" >
     <constructor-arg ref="registrationDAO"/>
     </bean

, но мой registrationDAO находится в hibernate-config, и когда я делаю это весной Security, он говорит, что нет бина с именем Registration DAO

1 Ответ

1 голос
/ 28 марта 2011

Spring поддерживает чтение контекста приложения через внешние jar-файлы. Просто добавьте префикс «classpath:» к имени файла контекста. Весна будет искать его во всем проекте.

Например, если вы создаете веб-приложение, вы можете объявить контекст приложения бизнес-логики следующим образом (web.xml)

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:applicationContext.xml <!-- tell Spring to look for context defined on the classpath -->
    </param-value>
</context-param>

Таким образом, вы сможете использовать столько контекста, сколько необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...