做了个综合点的项目写一下我个人心得吧
公共实现类以及对应javabean的实现类和接口
applicationContext.xml文件:
<import resource="源配置文件.xml" />
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:org\crmproject\xml\jdbc.properties</value> </list> </property> </bean>
配置数据库连接: <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close" lazy-init="default" autowire="default" dependency-check="default"> <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>
在配置文件中引用的 *.properties配置文件中对应的内容:
通过: ${键名} 来引用
类解析 sqlMapConfig.xml 配置文件所生成的类 同时 将数据库的连接通过注入到
解析所生成的类中!
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value> classpath:org\crmproject\xml\sqlMapConfig.xml </value> </property> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean>
导入Ibatis 中的sqlMapConfig.xml配置文件:
注意: sqlMapConfig.xml配置文件中,只需要导入要使用的实体类对应的配置文件
如: <sqlMap resource="org/crmdb/xml/dept_SqlMap.xml"/>
不需要配置连接数据库等节点属性
<!-- Transactions --> <bean id="TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean>
<bean id="AccountDao" class="org.crmporject.dao.AccountSqlMapDao"> <property name="sqlMapClient"> <ref local="sqlMapClient"/> </property> </bean>
<bean id="OrderService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref local="TransactionManager"></ref> </property> <property name="target"> <bean class="org.crmproject.impl.service.OrderService"> <property name="itemDao"> <ref bean="ItemDao"/> </property> <property name="orderDao"> <ref bean="OrderDao"/> </property> <property name="sequenceDao"> <ref bean="SequenceDao"/> </property> </bean> </property> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> </props> </property> </bean>
web.xml 配置文件中的信息说明:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!--dwr 配置信息 --> <servlet> <servlet-name>dwr-invoke</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <!--该类是DwrServlet 在dwr包中封装 好的--> <init-param> <param-name>debug</param-name> <!-- 启动调式 --> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoke</servlet-name> <url-pattern>/dwr/*</url-pattern> <!--当以/dwr/* 路径 请求时执行 --> </servlet-mapping> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener <!-- spring 中的监听器当web容器加载时就会执行该监听器 --> </listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:org/crmproject/xml/applicationContext.xml </param-value> </context-param> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
dwr.xml 中的说明:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"> <dwr> <allow> <!-- 把java中的一个类通过spring中的代理模式转换成javascript的一个类 --> <create javascript="ActionService" creator="spring"> <param name="beanName" value="actionService"></param> <!--从内存中去找 bean 节点的 中id属性为 actionService 的 class对应的类转换成javascript 中的一个 ActionService 对象 --> <include method="save"/> <!--向javascript 中提供一个公开的save 方法 --> </create> <!-- 在这里设置是要得到文本的值时一定要配的咯 --> <convert match="org.crmdb.model.Actioninfo" converter="bean"></convert> </allow> </dwr>