在SSH中spring是操盘手 ,struts和hibernate都有spring来组装。
Spring与Struts集成(三步):
1、在Struts配置文件中配置插件,如下所示:
<struts-config>
...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn ">
<set-property property="contextConfigLocation " value="/WEB-INF/applicationContext.xml"/>
</plug-in>
</struts-config>
<!--className是spring框架自己的一个类;contextConfigLocation是这个类的属性,我们需要把我们的
applicationContext.xml的路径告诉value;这个插件的实际就是为spring框架中的一个类的一个属性赋值。-->
2、将struts配置文件中的Action的type都配置为"org.springframework.web.struts.DelegatingActionProxy ",它
实际上也是spring中的一个类。如果在struts-config.xml中添加如下标签就可以省去修改Action的type属性:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
3、在spring的配置文件中配置我们自己的Action。如下所示:
<bean name="struts配置文件中的Action的path属性的值" class="我们自己的Action的路径">
<property name="userBiz" ref="你的Biz"></property>
</bean>
Spring与hibernate集成:
首先搞清楚他们的依赖关系:
DateSource-->SessionFactory-->DAO-->Biz-->Action
1、在spring配置文件中配置:如下所示:
<!--配置数据源 这里是SQLSever2005数据库的配置,可以从hibernate.cfg.xml复制粘贴过来一些-->
<bean id="dataSource " class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url"
value="jdbc:sqlserver://localhost:1433;databaseName=dbname"></property>
<property name="username" value="sa"></property>
<property name="password" value="password"></property>
</bean>
<!-- 配置session工厂,实际就是在为“org.springframework.orm.hibernate3.LocalSessionFactoryBean”这个类
中的dataSource、mappingResources、hibernateProperties三个属性赋值 -->
<bean id="sessionFactory " class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource ">
<ref local="dataSource "/>
</property>
<property name="mappingResources ">
<list>
<value>com/bookshop/entity/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties ">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="show_sql">true</prop>
</props>
</property>
</bean>
<!-- 注入到DAO,根据自己的实际情况写 -->
<bean id="你的DAO " class="你的DAO的实现类">
<property name="你的DAO里的被用来注入的私有属性" ref="sessionFactory "></property>
</bean>
<!--注入到Biz -->
<bean id="你的Biz " class="你的Biz的实现类">
<property name="你的Biz里的被用来注入的私有属性" ref="你的DAO "></property>
</bean>
<!-- 注入到Action -->
<bean name="struts配置文件中的Action的path属性的值" class="我们自己的Action的路径">
<property name="
你的Action里的被用来注入的私有属性
" ref="你的Biz "></property>
</bean>
<!--上面是按照依赖关系的反向依次写下来 -->
2、将hibernate.cfg.xml删掉。