/ / Jak skonfigurować źródło danych MySQL w Tomcat 7 za pomocą hibernacji i wiosny? - wiosna, hibernacja, kocur, jdbc, tomcat7

Jak skonfigurować MySQL DataSource w Tomcat 7 używając hibernacji i wiosny? - wiosna, hibernacja, tomcat, jdbc, tomcat7

to jest mój problem: próbuję skonfigurować moje źródło danych w polu tom cat context.xml, w następujący sposób:

//C:apache-tomcat-7.0.42confcontext.xml

<Context>

<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>


<Resource
name="jdbc/myDB" docBase="inv" auth="Container"
type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
maxActive="100" maxIdle="30" maxWait="10000"
url="jdbc:mysql://localhost:3306/myDB?autoReconnect=true"
username="root" password="pass"/>

</Context>

I mam w moim servlet-context.xml (wiosenny projekt) konfigurację hibernacji:

...
<!-- JDBC Data Source -->
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/rhcimax"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
<property name="validationQuery" value="SELECT 1"/>
</bean>

<!-- Hibernate Session Factory -->
<bean id="mySessionFactory"     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="packagesToScan">
<array>
<value>com.blah.baseProject</value>
</array>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
</value>
</property>
</bean>

<!-- Hibernate Transaction Manager -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="mySessionFactory"/>
</bean>

<!-- Activates annotation based transaction management -->
<tx:annotation-driven transaction-manager="transactionManager"/>

Co mogę zrobić, aby usunąć następującą część kodu i przekazać ją do pliku context.xml tom cat'a ?:

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/rhcimax"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
<property name="validationQuery" value="SELECT 1"/>
</bean>

Z góry dziękuję.

OSTATECZNE ROZWIĄZANIE:

Odniesienia to: xmlns: jee = "http://www.springframework.org/schema/jee", xsi: schemaLocation = "http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd"

Wreszcie mamy:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd">

<jee:jndi-lookup id="myDataSource" jndi-name="java:comp/env/jdbc/myDB"/>

<!-- Hibernate Session Factory -->
<bean id="mySessionFactory"     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="packagesToScan">
<array>
<value>com.blah.baseProject</value>
</array>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
</value>
</property>
</bean>

<!-- Hibernate Transaction Manager -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="mySessionFactory"/>
</bean>

<!-- Activates annotation based transaction management -->
<tx:annotation-driven transaction-manager="transactionManager"/>

Dzięki alanstroop.

Więcej informacji: http://static.springsource.org/spring/docs/3.3.0.BUILD-SNAPSHOT/spring-framework-reference/html/xsd-config.html

Odpowiedzi:

3 dla odpowiedzi № 1

<jee: jndi-lookup id = "myDataSource" jndi-name = "java: comp / env / jdbc / myDB" />


0 dla odpowiedzi nr 2

Możesz także użyć profili jee: jndi-lookup + Spring. To przykład pokazuje, jak korzystać z tych dwóch funkcji Spring. Profile sprężynowe pozwolą Ci korzystać z różnych środowisk bez dokonywania jakichkolwiek modyfikacji w Twojej aplikacji.