2012-09-29 10 views
11

Przyjrzałem się dokumentacji, aby zdefiniować komponent bean. Jestem po prostu niejasny na temat tego, jaki plik klasy należy użyć dla bazy danych Mysql. Czy ktokolwiek może podać poniżej definicję fasoli?Jak zdefiniować komponent bean źródła danych MySql za pośrednictwem XML na wiosnę

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

Odpowiedz

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

+0

Twój URL myliłem. Naprawiłem to. Czy to naprawdę nazwa użytkownika i hasło skonfigurowane przez użytkownika? Jakoś w to wątpię. – duffymo

+0

Co jeśli ktoś chce korzystać z łączenia połączeń? –

5

Użyj tej klasy org.springframework.jdbc.datasource.DriverManagerDataSource - DriverManagerDataSource. Najlepszą metodą jest izolowanie wartości z bazy danych w pliku .properties i konfigurowanie go w konfiguracji xml serwletu. W poniższym przykładzie właściwości są przechowywane jako pary klucz-wartość i uzyskujemy dostęp do value przy użyciu odpowiedniego key.

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.propeties file:

jdbc.driverClassName=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://localhost:3306/sample_db 
jdbc.username=root 
jdbc.password=sec3ret 
+1

Tak, ale użycie obiektów zastępczych własności nie było celem, i tylko komplikuje problem. Dlaczego deklarujesz elementy infrastruktury w warstwie prezentacji? Ponadto użycie plików właściwości jest zastępowane za pomocą zmiennych środowiskowych. – cyotee

+0

Tak, plik propeties nie jest punktem, ale gdzie można zobaczyć warstwę prezentacji w mojej odpowiedzi i wierzę, że używanie pliku 'properties' jest dobrą praktyką, a nie edycją konfiguracji xml http://stackoverflow.com/a/883910/ 1793718. Pozwala przechowywać wiele par klucz-wartość i jak używać zmiennych środowiskowych zamiast plików właściwości? czy mógłbyś podać mi link? – Lucky

+0

["Jest to przydatne, aby osoba wdrażająca aplikację mogła dostosować właściwości specyficzne dla środowiska (na przykład adresy URL bazy danych, nazwy użytkowników i hasła), bez złożoności lub ryzyka modyfikacji głównego pliku definicji XML lub plików dla kontenera."] (http://docs.spring.io/spring/docs/2.5.x/reference/beans.html#beans-factory-placeholderconfigurer) – Lucky

Powiązane problemy