锁定老帖子 主题:dwr如何使用DAO
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-22
我想在类中使用DAO,写的代码如下: ApplicationContext applicationContext = new FileSystemXmlApplicationContext(applicationContext.xml"); CommonDAO dao = (CommonDAO)applicationContext.getBean("commonDAO"); 结果我发现重新初始化了一遍applicationContext里的所有设置的bean,问一下,还有其他的使用方法么? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-22
初始化一个DAO,需要首先初始化一个sessionFactory,进而需要初始化dataSource。。。配置里必须的bean差不多也就都被init了。。。
默认情况下,Spring是会装载applicationContext.xml中所有的bean的除非你把lazy-init属性设置为true:) |
|
返回顶楼 | |
发表时间:2007-01-22
wannaberer 写道 初始化一个DAO,需要首先初始化一个sessionFactory,进而需要初始化dataSource。。。配置里必须的bean差不多也就都被init了。。。
默认情况下,Spring是会装载applicationContext.xml中所有的bean的除非你把lazy-init属性设置为true:) 我试过把lazy-init都设置为true了,但是每次调用那个方法的时候还是都初始化了一遍:< |
|
返回顶楼 | |
发表时间:2007-01-22
lazy-init都设置为true不代表这个bean就真的能够lazy-init,前提是其它bean被IoC机制装载的时候不关他的事~
就比如说你想取到一个DAO,他的ref是肯定会被先初始化的,这样层层追溯,最低层的那个bean肯定会被最先初始化,这样才能保证安全性 |
|
返回顶楼 | |
发表时间: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使用和它有关系啊。 |
|
返回顶楼 | |
发表时间:2007-01-22
怎么觉得有点文不对题那!
主题是:dwr如何使用DAO? 我没看出楼主的问题和DWR相关! |
|
返回顶楼 | |
发表时间:2007-01-22
daoger 写道 怎么觉得有点文不对题那!
主题是:dwr如何使用DAO? 我没看出楼主的问题和DWR相关! 因为我是在尝试使用dwr的时候发现的问题,这个是我想的出来的在页面调用java类中使用hibernate dao的方法,不知道各位高手是怎么做的? ![]() |
|
返回顶楼 | |
发表时间:2007-01-22
Surge 写道 daoger 写道 怎么觉得有点文不对题那!
主题是:dwr如何使用DAO? 我没看出楼主的问题和DWR相关! 因为我是在尝试使用dwr的时候发现的问题,这个是我想的出来的在页面调用java类中使用hibernate dao的方法,不知道各位高手是怎么做的? ![]() 你是说把你上面写的代码放到页面中,然后在页面中调用DAO??? |
|
返回顶楼 | |
发表时间:2007-01-22
daoger 写道 怎么觉得有点文不对题那!
主题是:dwr如何使用DAO? 你是说把你上面写的代码放到页面中,然后在页面中调用DAO??? 当然不是,dwr不是能够在javascript中调用java类么,在java类中使用DAO |
|
返回顶楼 | |
发表时间: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"); } |
|
返回顶楼 | |