【1】配置spring
在前面的基础上编写了DAO层,SERVICE层等的代码,现在需要通过spring的配置文件将各层连接并进行注入
首先先配置数据源
<!-- 数据源配置 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/oa"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<property name="defaultAutoCommit" value="true"></property>
</bean>
这也就是以前通过javabean等实现的连接数据库操作,spring是通过连接池进行数据库的连接的
接着配置与之相关的java类的关系
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>oa/sean/bean/User.hbm.xml</value>
</list>
</property>
</bean>
将其注入到sessionfactory当中
整个过程就是这样,然后将sessionfactory注入到DAO,DAO再注入到action当中,实现了从数据库到jsp页面的一套流程
下面配置dao层和服务层
<bean id="userDao" class="oa.sean.dao.impl.UserDAOImpl" scope="singleton">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="userService" class="oa.sean.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
注意:dao层是没有状态的,因此将其配置成singleton,默认的也是使用此方法
最后是注入到action当中
注意spring的配置文件当中的名称要和struts当中定义的class一样
见红色所示:
<bean id="userService" class="oa.sean.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
<!-- 所有的action要设置成prototype性质的,可每次访问生成一个实例,否则默认为singleton,只生成一个实例 -->
<bean id="saveUserAction" class="oa.sean.action.user.SaveUserAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean>
<bean id="listUserAction" class="oa.sean.action.user.ListUserAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean>
<bean id="removeUserAction" class="oa.sean.action.user.RemoveUserAction" scope="prototype">
<property name="service" ref="userService"></property>
</bean>
<bean id="updatePUserAction" class="oa.sean.action.user.UpdatePUserAction" scope="prototype">
<property name="service" ref="userService"></property>
</bean>
<bean id="updateUserAction" class="oa.sean.action.user.UpdateUserAction" scope="prototype">
<property name="service" ref="userService"></property>
</bean>
<!-- 有状态的用prototype类型,没状态的用singleton,区分一个action是否有状态,是否有相互区分的属性 -->
<bean id="generateExcelAction" class="oa.sean.action.user.GenerateExcelAction" >
<property name="service" ref="userService"></property>
</bean>
此时简单的一个SSH就基本完成了
加上前台的页面就可以看到结果了