我有一个带有 javamelody 的 Spring Maven 项目。
我使用hibernate和spring,没有任何JNDI数据源。
xml conf中的数据源:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://${database.location}:${database.port}/${database.dbname}?zeroDateTimeBehavior=convertToNull&characterEncoding=utf8"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
<property name="persistenceUnitName" value="rtt-backend" />
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
<property name="jpaDialect" ref="jpaDialect" />
</bean>
<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="database" value="MYSQL" />
<property name="showSql" value="false" />
</bean>
<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
<property name="dataSource" ref="dataSource" />
<property name="jpaDialect" ref="jpaDialect" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
但是如果我连接到 javamelody 监视器页面会显示: “sql 统计 sql - 1 天 - 无”
我尝试过:
在 presistence.xml 中:
net.bull.javamelody.JpaPersistence
使用数据源包装器
<bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean"> <property name="targetName" value="dataSource" /> </bean>
但还是什么都没有。
最佳答案
正如 user guide 中所述,只需添加您的 spring 上下文配置:
classpath:net/bull/javamelody/monitoring-spring.xml
或者如果你想使用
<bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean">
<property name="targetName" value="dataSource" />
</bean>
然后替换你的entityManagerFactory和transactionManager
<property name="dataSource" ref="dataSource" />
与
<property name="dataSource" ref="wrappedDataSource" />
关于java melody - spring 没有 sql stat - 没有 JNDI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510093/