最近看了下开源系统Jpetstore,有一个疑问
dataAccessContext-local.xml文件部分内容如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 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}"/>
</bean> <!-- Transaction manager for a single JDBC DataSource -->
<!-- (see dataAccessContext-jta.xml for an alternative) -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
我想问的是:配置数据库连接元数据不是在sql-map-config.xml中配置的吗?为什么会出现在这个文件里(这个文件是spring的配置文件吗?)
sql-map-config.xml文件部分内容如下:
<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:sino"/>
<property name="JDBC.Username" value="fly"/>
<property name="JDBC.Password" value="oracle"/> </dataSource>
</transactionManager>
dataAccessContext-local.xml文件部分内容如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 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}"/>
</bean> <!-- Transaction manager for a single JDBC DataSource -->
<!-- (see dataAccessContext-jta.xml for an alternative) -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
我想问的是:配置数据库连接元数据不是在sql-map-config.xml中配置的吗?为什么会出现在这个文件里(这个文件是spring的配置文件吗?)
sql-map-config.xml文件部分内容如下:
<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:sino"/>
<property name="JDBC.Username" value="fly"/>
<property name="JDBC.Password" value="oracle"/> </dataSource>
</transactionManager>
<bean id="helloBean" class="com.HelloBean">
<property name="helloworld">
<value>Hello!Rick</value>
</property>
</bean>
property中name属性名是否一定要和类HelloBean中属性名一样?(HelloBean中就包括一个属性helloworld)
属性是helloworld的话,set方法就是setHelloworld
<!-- Configurer that replaces ${...} placeholders with values from properties files -->
<!-- (in this case, mail and JDBC related properties) -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>WEB-INF/mail.properties</value>
<value>WEB-INF/jdbc.properties</value>
</list>
</property>
</bean>
用来读取jdbc.driverClassName等设置的。
这样在配置的时候就可以不在sql-map-config.xml里面配置了。而在spring的xml里就可以写成${jdbc.****}的形式