복붙노트

[SPRING] Spring applicationContext.xml에서 데이터 소스로 P6Spy 사용

SPRING

Spring applicationContext.xml에서 데이터 소스로 P6Spy 사용

저는 Hibernate 4, Spring 3, JSF 2.0 및 Weblogic 10.3.6을 서버로 사용하고 있습니다.

Weblogic 서버 및 applicationContext.xml에서 datasource를 다음과 같이 정의했습니다.

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

SQL 매개 변수 로깅을 위해 P6Spy를 사용하려면 applicationcontext.xml에서 다음을 어떻게 추가해야합니까?

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

어떤 도움이라도 대단히 중요합니다.

감사

해결법

  1. ==============================

    1.스프링을 사용하여 p6spy를 통합하는 가장 쉬운 방법은 P6DataSource 클래스를 사용하는 것입니다. P6DataSource 클래스는 실제 데이터 소스의 프록시 일뿐입니다. 이를 통해 스프링 데이터 소스 팩토리 구현을 사용하여 실제 데이터 소스를 얻을 수 있습니다.

    스프링을 사용하여 p6spy를 통합하는 가장 쉬운 방법은 P6DataSource 클래스를 사용하는 것입니다. P6DataSource 클래스는 실제 데이터 소스의 프록시 일뿐입니다. 이를 통해 스프링 데이터 소스 팩토리 구현을 사용하여 실제 데이터 소스를 얻을 수 있습니다.

    <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>
    
  2. ==============================

    2.applicationContext.xml 파일에 세션 팩의 bean을 다음과 같이 생성해야한다.

    applicationContext.xml 파일에 세션 팩의 bean을 다음과 같이 생성해야한다.

    <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>
    

    P6Spy 라이브러리에 대한 자세한 내용은 http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/를 참조하십시오.

    우리는 "dataSource"빈을 생략하고 직접 속성을 작성할 수 있습니다. 심판 : SQL Server를위한 최대 절전 모드 구성 파일을 구성하는 방법

  3. from https://stackoverflow.com/questions/14706029/usage-of-p6spy-with-datasource-in-spring-applicationcontext-xml by cc-by-sa and MIT license