<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-2.5.xsd">

    <!-- アノテーションが付加されたコンポーネントを自動登録 -->
    <context:component-scan base-package="jp.sf.maskat" />

    <!-- HTTP 応答を JAXB で出力する独自の ViewResolver を指定 -->
    <bean id="viewResolver" class="jp.sf.maskat.view.JAXBViewResolver" />

    <!-- JDBC プロパティファイルを読み込み -->
    <context:property-placeholder location="classpath:jdbc.properties" />

    <!-- JDBC データソースの生成 -->
    <bean id="dataSource" destroy-method="close"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
    </bean>

    <!-- JPA エンティティマネージャファクトリの生成 -->
    <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="jpaVendorAdapter">
            <bean
                class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter" />
        </property>
    </bean>

    <!-- JPA トランザクションマネージャの生成 -->
    <tx:annotation-driven transaction-manager="transactionManager" />
    <bean id="transactionManager"
        class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>

</beans>