Использование P6Spy с источником данных в Spring applicationContext.xml

Я использую Hibernate 4, Spring 3, JSF 2.0 и Weblogic 10.3.6 в качестве сервера.

Я создал источник данных на сервере Weblogic и в applicationContext.xml я определил источник данных как

<!-- Data Source Declaration -->    
    <bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jdbc/​myDS"/>   
</bean>

Если я хочу использовать P6Spy для регистрации параметров SQL, как я могу и где добавить следующее в applicationcontext.xml?

  <property name="hibernate.connection.driver_class">com.p6spy.engine.spy.
  P6SpyDriver</property>

Любая помощь очень заметна.

Спасибо

2 ответа

Самый простой способ интегрировать p6spy с помощью Spring - это использовать класс P6DataSource. Класс P6DataSource - это просто прокси для реального источника данных. Это позволяет получить реальный источник данных, используя любую из реализаций фабрики источника данных Spring.

<bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource">
  <constructor-arg>
    <bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
      <property name="jndiName" value="jdbc/​myDS"/>   
    </bean>
  </constructor-arg>
</bean>

Если вы используете XADatasource, просто измените имя класса на P6ConnectionPoolDataSource, как показано ниже. Примечание. P6ConnectionPoolDataSource реализует интерфейсы ConnectionPoolDataSource и XADataSource.

<bean id="dataSource" class="com.p6spy.engine.spy.P6ConnectionPoolDataSource">
  <constructor-arg>
    <bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
      <property name="jndiName" value="jdbc/​myDS"/>   
    </bean>
  </constructor-arg>
</bean>

Вам нужно создать бин фабрики сеансов в файле applicationContext.xml следующим образом:

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
    </bean>
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.p6spy.engine.spy.
  P6SpyDriver" />
        <property name="url" value="jdbc\:mysql\://localhost\:3306/testdb" />
        <property name="username" value="my_username" />
        <property name="password" value="my_password" />
    </bean>

Пожалуйста, обратитесь: http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/ для получения дополнительной информации о библиотеке P6Spy.

Мы можем опустить bean-компонент "dataSource" и напрямую писать свойства. Ссылка: как настроить файл конфигурации Hibernate для сервера SQL

Другие вопросы по тегам