小结一个学习中的经验关于HSS(中)

总结一个学习中的经验关于HSS(中)

下面说明下关于 Sping的设计与配置的问题,

其实Spring的功能还很丰富,但是我就浅显的使用。里面主要是说明Bean与他们的跳转,并且说明了后面struts的action部分。

先拿一个POJO做例子说明:

import java.io.Serializable;

public class Pay implements Serializable {
	private Integer payid;
	private Integer paynum;
	private Integer number;
	private String paytime;
	private Integer empid;
	public Integer getPayid() {
		return payid;
	}
	public void setPayid(Integer payid) {
		this.payid = payid;
	}

 其他的GET SET略。

 

 

一下的代码是按例子里面学习,感觉这样使用可以很好的将DAO解耦。一下是接口

import java.util.List;

import com.pepmanagex.hibernate.PayDAO;
import com.pepmanagex.model.Pay;

public interface IPayManager {

	public abstract PayDAO getPayDAO();

	public abstract void setPayDAO(PayDAO payDAO);

	public abstract void savePay(Pay pay);

	public abstract List getPay(Pay pay);

	public abstract void deletePay(Integer id);

	public abstract Pay getPay(Integer id);

}

 接口实现类:注意放回的List,因为struts阶段获取的值全部都用list传递。

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.pepmanagex.hibernate.PayDAO;
import com.pepmanagex.model.Pay;
import com.pepmanagex.services.imp.IPayManager;

public class PayManager implements IPayManager {
	protected final Log log =LogFactory.getLog(PayManager.class);
	private PayDAO payDAO;

	public void deletePay(Integer id) {
		// TODO Auto-generated method stub
         Pay pay=payDAO.findById(id);
         try {
			payDAO.delete(pay);
		} catch (Exception e) {
			// TODO: handle exception
			log.error("Failure to delete pay.",e);
		}
	}

	public List getPay(Pay pay) {
		// TODO Auto-generated method stub
		List list=null;
		try {
			list=payDAO.findByExample(pay);
		} catch (Exception e) {
			// TODO: handle exception
			log.error("Failure to get pay", e);
		}
		return list;
	}

	public Pay getPay(Integer id) {
		// TODO Auto-generated method stub
		return payDAO.findById(id);
	}

	public PayDAO getPayDAO() {
		// TODO Auto-generated method stub
		return payDAO;
	}

	public void savePay(Pay pay) {
		// TODO Auto-generated method stub
		payDAO.save(pay);

	}

	public void setPayDAO(PayDAO payDAO) {
		// TODO Auto-generated method stub
		this.payDAO=payDAO;

	}

 测试:这个不可缺

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.pepmanagex.model.Pay;
import com.pepmanagex.services.imp.IPayManager;

public class TestP {

	/**
	 * @param args
	 */
	private IPayManager payManager;
	
	
	public IPayManager getPayManager() {
		return payManager;
	}


	public void setPayManager(IPayManager payManager) {
		this.payManager = payManager;
	}


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ApplicationContext applicationContext = new FileSystemXmlApplicationContext(
		"classpath:com/pepmanagex/congif/applicationContext.xml");
		TestP testp=(TestP)applicationContext.getBean("savePay_test");
		testp.savepay();

	}
	public void savepay(){
		Pay pay=new Pay();
		pay.setPaynum(123);
		pay.setNumber(123);
		payManager.savePay(pay);
	}

}

 

一下全部都是配置文件:(注意:在编写Bean的参数的时候点出来的名称,这里容易错)

添加一个manager来将Action与DAO分离开,编写时候代码量也减少不少。

<!-- pay的dao manager action -->
	<bean id="payDAO" class="com.pepmanagex.hibernate.PayDAO">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>
	<bean id="payManager" class="com.pepmanagex.services.doimp.PayManager">
		<property name="payDAO">
			<ref local="payDAO" />
		</property>
	</bean>
	<bean name="/pay" class="com.pepmanagex.struts.action.PayAction">
		<property name="payManager">
			<ref local="payManager" />
		</property>
	</bean>

 测试的配置另外写个SpringConfig文件这样方面管理也好查看,我这次全部放在一块了。

<bean id="saveRole_test" class="com.pepmanagex.test.TestR">
		<property name="roleManager">
			<ref local="roleManager"/>
		</property>
	</bean>