Morphia整合spring

Spring需要的一些包,这里就不多说了

Spring配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
   
    <bean id="mongo" class="com.mongodb.Mongo">
        <constructor-arg value="127.0.0.1"></constructor-arg>
        <constructor-arg value="27017"></constructor-arg>
    </bean>
    
    <bean id="morphia" class="com.google.code.morphia.Morphia">
    </bean>
    
    <bean id="myEntityDao" class="dao.MyEntityDao">
        <constructor-arg ref="mongo"></constructor-arg>
        <constructor-arg ref="morphia"></constructor-arg>
        <constructor-arg value="mydb"></constructor-arg>
    </bean>
</beans>

morphia可以根据具体的需求重写

dao层的代码:

public class MyEntityDao extends BasicDAO<MyEntity, ObjectId>{

	private Datastore ds;
	
	protected MyEntityDao(Mongo mongo, Morphia morphia, String dbName) {
		super(mongo, morphia, dbName);
		ds = morphia.createDatastore(mongo,dbName);
	}
	
	public List<MyEntity> getList(){
		return ds.find(MyEntity.class).asList();
	}
}

测试代码:

public static void main(String[] args) {
		ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");
		MyEntityDao myEntityDao=(MyEntityDao) context.getBean("myEntityDao");
		
		System.out.println("hello");
		List<MyEntity>  list= myEntityDao.getList();
		System.out.println(list.size());
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i).name);
		}
			
	}

这只是一种配置方法,还有其他的:

http://blog.csdn.net/liuzhoulong/archive/2011/01/17/6147410.aspx

相关推荐