论坛首页 Web前端技术论坛

dwr如何使用DAO

浏览 6634 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-22  
初学dwr,看了两天,动手写了个例子。
我想在类中使用DAO,写的代码如下:
ApplicationContext applicationContext = new FileSystemXmlApplicationContext(applicationContext.xml");
CommonDAO dao = (CommonDAO)applicationContext.getBean("commonDAO");
结果我发现重新初始化了一遍applicationContext里的所有设置的bean,问一下,还有其他的使用方法么?
   发表时间:2007-01-22  
初始化一个DAO,需要首先初始化一个sessionFactory,进而需要初始化dataSource。。。配置里必须的bean差不多也就都被init了。。。
默认情况下,Spring是会装载applicationContext.xml中所有的bean的除非你把lazy-init属性设置为true:)
0 请登录后投票
   发表时间:2007-01-22  
wannaberer 写道
初始化一个DAO,需要首先初始化一个sessionFactory,进而需要初始化dataSource。。。配置里必须的bean差不多也就都被init了。。。
默认情况下,Spring是会装载applicationContext.xml中所有的bean的除非你把lazy-init属性设置为true:)


我试过把lazy-init都设置为true了,但是每次调用那个方法的时候还是都初始化了一遍:<
0 请登录后投票
   发表时间:2007-01-22  
lazy-init都设置为true不代表这个bean就真的能够lazy-init,前提是其它bean被IoC机制装载的时候不关他的事~
就比如说你想取到一个DAO,他的ref是肯定会被先初始化的,这样层层追溯,最低层的那个bean肯定会被最先初始化,这样才能保证安全性
0 请登录后投票
   发表时间:2007-01-22  
我的applicationContext的设置:
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:ctdeDS</value>
</property>
</bean>

<bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"
lazy-init="true" />

<bean id="oracleLobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<ref local="nativeJdbcExtractor" />
</property>
</bean>

<bean id="defaultLobHandler"
class="org.springframework.jdbc.support.lob.DefaultLobHandler"
lazy-init="true" />


<!-- Hibernate SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" lazy-init="true">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="lobHandler">
<ref local="defaultLobHandler" />
</property>
<property name="configLocation">
<value>classpath:/hibernate.cfg.xml</value>
</property>


</bean>

<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>


<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="search*">readOnly</prop>
<prop key="get*">readOnly</prop>
<prop key="load*">readOnly</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

    <bean name="commonDAO" class="com.cn.ctde.common.dao.impl.CommonDAOImpl" lazy-init="true">
        <property name="sessionFactory">
            <ref bean="sessionFactory"/>
        </property>
    </bean>

    <bean id="entityManager"  parent="txProxyTemplate" lazy-init="true">
        <property name="target">
            <bean class="com.cn.ctde.common.service.impl.EntityManagerImpl">
                <property name="commonDAO">
                    <ref bean="commonDAO" />
                </property>
            </bean>
        </property>
    </bean>
   
    <bean id="treeviewElement"  parent="txProxyTemplate">
        <property name="target">
            <bean class="com.cn.ctde.common.service.impl.TreeviewElementImpl">
                <property name="commonDAO">
                    <ref bean="commonDAO" />
                </property>
            </bean>
        </property>
    </bean>
后来我试过用entityManager,没感觉到有其他的bean使用和它有关系啊。
0 请登录后投票
   发表时间:2007-01-22  
怎么觉得有点文不对题那!
主题是:dwr如何使用DAO?
我没看出楼主的问题和DWR相关!
0 请登录后投票
   发表时间:2007-01-22  
daoger 写道
怎么觉得有点文不对题那!
主题是:dwr如何使用DAO?
我没看出楼主的问题和DWR相关!


因为我是在尝试使用dwr的时候发现的问题,这个是我想的出来的在页面调用java类中使用hibernate dao的方法,不知道各位高手是怎么做的?
0 请登录后投票
   发表时间:2007-01-22  
Surge 写道
daoger 写道
怎么觉得有点文不对题那!
主题是:dwr如何使用DAO?
我没看出楼主的问题和DWR相关!


因为我是在尝试使用dwr的时候发现的问题,这个是我想的出来的在页面调用java类中使用hibernate dao的方法,不知道各位高手是怎么做的?


你是说把你上面写的代码放到页面中,然后在页面中调用DAO???
0 请登录后投票
   发表时间:2007-01-22  
daoger 写道
怎么觉得有点文不对题那!
主题是:dwr如何使用DAO?

你是说把你上面写的代码放到页面中,然后在页面中调用DAO???


当然不是,dwr不是能够在javascript中调用java类么,在java类中使用DAO
0 请登录后投票
   发表时间:2007-01-22  
http://wiki.javascud.org/display/dwrcn/Spring+Integration


/**
 * 读取spring配置文件的基础类
 */
package exam.ssh.context;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class AppContext
{
	private static AppContext intance;

	private AbstractApplicationContext appContext;

	public synchronized static AppContext getIntance()
	{
		if (intance == null)
		{
			intance = new AppContext();
		}
		return intance;
	}

	private AppContext()
	{
		this.appContext = new ClassPathXmlApplicationContext("exam/ssh/context/applicationContext.xml");
	}

	public AbstractApplicationContext getAppContext()
	{
		return this.appContext;
	}
}




protected GoodsServer getGoodsServer()
	{
		return (GoodsServer) AppContext.getIntance().getAppContext().getBean("GoodsService");
	}

0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics