복붙노트

[SPRING] Spring에서 XML을 통해 MySql 데이터 소스 빈을 정의하는 방법

SPRING

Spring에서 XML을 통해 MySql 데이터 소스 빈을 정의하는 방법

빈을 정의하기 위해 문서를 살펴 보았다. MySQL 데이터베이스에 어떤 클래스 파일을 사용할 지 명확하지 않습니다. 누구든지 아래의 bean 정의를 채울 수 있습니까?

<bean name="dataSource" class="">
    <property name="driverClassName" value="" />
    <property name="url" value="mysql://localhost/GameManager" />
    <property name="username" value="gamemanagertest" />
    <property name="password" value="1" />
</bean>

해결법

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

    1.두 대답 모두 질문에 적합합니다. 그러나 당신의 데이터 소스로 DriverManagerDataSource를 사용하려고한다면, 데이터 소스 빈에 대한 모든 호출은 데이터베이스에 대한 새로운 연결을 생성합니다. 이것은 프로덕션에 권장되지 않으며 심지어 연결을 풀링하지 않습니다.

    두 대답 모두 질문에 적합합니다. 그러나 당신의 데이터 소스로 DriverManagerDataSource를 사용하려고한다면, 데이터 소스 빈에 대한 모든 호출은 데이터베이스에 대한 새로운 연결을 생성합니다. 이것은 프로덕션에 권장되지 않으며 심지어 연결을 풀링하지 않습니다.

    연결 풀이 필요하면 Apache Commons DBCP를 고려하십시오.

    <bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/GameManager" />
        <property name="username" value="gamemanagertest" />
        <property name="password" value="1" />
        <property name="initialSize" value="2" />
        <property name="maxActive" value="5" />
    </bean>
    

    initialSize 및 maxActive는 관련 속성을 풀링합니다.

    이것을 사용하려면 경로에 필요한 병이 있는지 확인하십시오.

  2. ==============================

    2.

    <bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/GameManager" />
        <property name="username" value="gamemanagertest" />
        <property name="password" value="1" />
    </bean>
    

    http://docs.spring.io/spring-data/jdbc/docs/1.1.0.M1/reference/html/orcl.datasource.html

  3. ==============================

    3.이 클래스 org.springframework.jdbc.datasource.DriverManagerDataSource - DriverManagerDataSource를 사용하십시오. 데이터베이스 값을 .properties 파일로 분리하고 Spring 서블릿 xml 구성으로 구성하는 것이 가장 좋습니다. 아래 예제에서 속성은 키 - 값 쌍으로 저장되며 해당 키를 사용하여 값에 액세스합니다.

    이 클래스 org.springframework.jdbc.datasource.DriverManagerDataSource - DriverManagerDataSource를 사용하십시오. 데이터베이스 값을 .properties 파일로 분리하고 Spring 서블릿 xml 구성으로 구성하는 것이 가장 좋습니다. 아래 예제에서 속성은 키 - 값 쌍으로 저장되며 해당 키를 사용하여 값에 액세스합니다.

    applicationContext-dataSource.xml :

    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="connectionCachingEnabled" value="true"/>
    </bean>
    
    <context:property-placeholder location="classpath:jdbc.properties"/>
    

    jdbc.properties 파일 :

    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/sample_db
    jdbc.username=root
    jdbc.password=sec3ret
    
  4. from https://stackoverflow.com/questions/12657503/how-to-define-a-mysql-datasource-bean-via-xml-in-spring by cc-by-sa and MIT license