【3】SSH整合-spring注入

【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就基本完成了

加上前台的页面就可以看到结果了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值