1.如何使用Spring的呢

1. 运用Spring来替代工厂类:

使用applicationContext.xml配置文件来替代之前的工厂类
<bean id="userDao" class="com.syy.dao.imp.GenericDaoImphibernate">
<constructor-arg value="com.syy.model.pojo.User"></constructor-arg>
</bean>


2. 实现控制反转/依赖注入:

1. 声明的对象的同时,需要提供对象的Set方法
2. 实例化对象并不是由创建对象的类本身来负责
3. 而是由调用该对象的类来负责实例化该对象

代码:

Manager实现类

public class GeneircManagerImp<T, K extends Serializable>
implements GeneircManager<T, K> {
//声明GeneircDao的对象genericDao
protected GeneircDao<T, K> genericDao;
//为该对象提供set方法(以便对其进行注入信息)
public void setGenericDao(GeneircDao<T, K> genericDao) {
this.genericDao = genericDao;
}
}

applicationContext.xml 配置文件
/*
* userDao对象由com.syy.dao.imp.GenericDaoImphibernate类来负责实例化
* 为userDao的构造函数注入参数com.syy.model.pojo.User
* 对持有的sessionFactory注入信息
*/
<bean id="userDao" class="com.syy.dao.imp.GenericDaoImphibernate">
<constructor-arg value="com.syy.model.pojo.User"></constructor-arg>
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

/*
* userManager对象由com.syy.manager.imp.GeneircManagerImp类来负责实例化
* 对持有的genericDao注入信息
*/
<bean id="userManager" class="com.syy.manager.imp.GeneircManagerImp">
<property name="genericDao" ref="userDao"/>
</bean>


3. 与Hibernate想关联,封装Dao的基本方法

Dao的实现类通常继承HibernateDaoSupport类

调用getHibernateTemplate().……;方法来实现对pojo进行相应的操作

代码:
public class GenericDaoImphibernate<T,K extends Serializable >
extends HibernateDaoSupport implements GeneircDao<T,K>{

……
public T save(T object) {
//实现保存操作
T entity = (T) this.getHibernateTemplate().merge(object);
return entity;
}
……
}


4. 与Struts2相关联

将Struts2的objectFactory(Action类)交给Spring来实例化

Struts.xml
    <!-- 指定Struts 2默认的ObjectFactory Bean,该属性默认值是spring -->
<constant name="struts.objectFactory" value="spring"/>

这个监听器是在tomcat装载项目的时候启动的

Web.xml
<listener>
    <listener-class>
org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>




5  实现使用多个applicationContext.xml 配置文件

/*
*  在com/syy文件夹下以applicationContext开头的xml文件都将被加载进去
*/
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
classpath*:com/syy/applicationContext*.xml
</param-value>
</context-param>

你可能感兴趣的:(DAO,spring,xml,Hibernate,struts)