问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于spring配置的理解

发布网友 发布时间:2022-04-10 07:18

我来回答

4个回答

热心网友 时间:2022-04-10 08:47

<bean id="UserDAO" class="cn.com.sh..impl.UserDAOImpl">
<property name="sessionFactory" >
<ref bean="sessionFactory"/>
</property>
</bean>
这里的<property name="sessionFactory">
<ref bean="sessionFactory"/>
这样理解
这个property 就是属性的意思,意思是说id="UserDAO"的类class="cn.com.sh..impl.UserDAOImpl"中有一个属性sessionFactory.
你看下你的那个UserDAOImpl有没有sessionFactory这个属性.
如果这个类中没有,再找这个类的父类.
象UserDAOImpl这些类一般都是通过extends HibernateDaoSupport来进行操作的.也就是说UserDAOImpl的父类HibernateDaoSupport中肯定有sessionFactory这个属性了.
在配置文件中
<property name="sessionFactory">
<ref bean="sessionFactory"/>
意思是说这个sessionFactory参照了某个id="sessionFactory".
你再仔细看下你的配置文件
里面肯定有一个配置sessionFactory
象配置sessionFactory也许是下面这样的:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
............
</bean>
也就是说上面你那个
<bean id="UserDAO" class="cn.com.sh..impl.UserDAOImpl">
<property name="sessionFactory">这个sessionFactory是固定的
<ref bean="sessionFactory"/>这个sessionFactory是你先定义好的.
</property>
</bean>

有些属性的名字是固定,有些自定的id你可以自定名字的.你刚学这个,最好参照规范.
至于sessionFactory是什么,简单来讲就相当于JDBC里面的一个Connection

热心网友 时间:2022-04-10 10:05

这些写法都业内人士通用的做法,也可以,自己定义一些名字!看你自己的做法啦!

热心网友 时间:2022-04-10 11:40

<bean id="UserDAO" class="cn.com.sh..impl.UserDAOImpl">
<property name="sessionFactory"> //UserDAO中的变量名
<ref bean="sessionFactory"/> //Spring的bean的id
</property>
</bean>

这样配就是UserDAO属性里面有一个 sessionFactory 的变量
让spring把 名叫"sessionFactory"的bean注入进去
如果 UserDAO中没有 sessionFactory的set方法,肯定报错

在代理部分bean 的class是不能改变的(如果是自动代理的话,当然spring还有其他方式的代理)

property name也是不能改变的!
因为这次注入的是spring包里面的bean,名字已经定死了的
transactionManager
proxyInterfaces
target
等等~

你只需要复制spring的例子代码,修改value就可以了

热心网友 时间:2022-04-10 13:31

spring的HibernateDaoSupport 的部分源码:
public abstract class HibernateDaoSupport extends DaoSupport {

private HibernateTemplate hibernateTemplate;

/**
* Set the Hibernate SessionFactory to be used by this DAO.
* Will automatically create a HibernateTemplate for the given SessionFactory.
* @see #createHibernateTemplate
* @see #setHibernateTemplate
*/
public final void setSessionFactory(SessionFactory sessionFactory) {
if (this.hibernateTemplate == null || sessionFactory != this.hibernateTemplate.getSessionFactory()) {
this.hibernateTemplate = createHibernateTemplate(sessionFactory);
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
空调加氟时要注意什么? 电脑安装了pr兼容性pr显示系统兼容性报告 带你了解——赫伯罗特 一千克面粉三十元一克面粉多少钱 大米2元500克面粉3元500克 2千克大米和和1500克面粉多少钱?_百度... ...面粉每千克多少元.大米25千克4.5元一千克面粉2 买8000克面粉需要32元,每千克面粉多少钱 500克面粉2元钱1千克面粉多少钱,怎么练式? 软棕和硬棕哪个好 amd rx6800m相当于nvidia什么水平? 用pr剪辑视频会被识别搬运吗? 怎么改变音频不会被检查出搬运 如何修改视频参数让系统识别不出来 ,密码被泄露,他人可以异地登录吗 微信在另一个手机登陆,输入验证码以后,成功登录,再退出重新登录,还需要验证码吗? 能不用验证就被盗了吗? 脸上总是出油很多,怎么办 脸上有很多的油怎么办??? 脸上老是出很多油有什么好办法解决吗? 就是别人,在异地登录 你的微信 第二次登陆需要验证码吗? 脸上冒很多油怎么办 脸上出很多油,这时候该怎么办? web.xml怎样配置spring 手机卡被朋友拿了他不还我该怎么办? 手机卡掉了被人用了怎么办 如果手机卡被别人拔出去了还能找回来吗? 如果手机卡被别人拿走了,为了不被别人乱用话费,应该怎么办? 为什么小米2a格式化之后下载主题要登陆账户? 小米手机清除数据后开机需要小米账户登录,跳过登录可以恢复出厂前设置吗 小米3手机数据格式化了为什么要登录用户 搬运视频月入过万,修改帧速率和MD5值可以吗?听听老手建议! 快手搬运别人的作品被检测到需要删除吗 视频转化为音频后还能检测出来么 碎银子孕妇可以喝吗 喝碎银子普洱茶可以减肥吗 保险万能账户里的累计收益的钱能取出来吗 阳光保险的智赢相伴(万能账户)6年后部分领取最多能领多少钱?在不退保的情况下,能全领出来吗 公安机关会在微信发调查令嘛? 支付宝支付时提示未结账账单过多 怎么办 想在支付宝买东西总显示——对不起,您未付款的订单太多,请付款或关闭订单先 淘宝未付款订单最多可以几个啊 我的老是5个就提示未付款订单过多 淘宝上面我有好几笔订单,未付款,怎样退订单?在买到的宝贝里面好多… 问道奇宝斋提示24小时内未付款订单已经超过3笔,最后一笔订单失效起24小时内无法再购买商品什么意思 手机淘宝上付不了款,总是显示说太多订单未付款,让先关闭是怎么回事 支付宝显示订单创建超过上限,请关闭交易后再试,可是我里面没有未付款的订单呀 孩子吃多了肚子胀气如何快速消除 暖宝宝贴膨胀有危险吗 断奶奶胀可以贴暖宝宝能不能 婴儿热敷肚子能排气吗 婴儿胀气应该如何快速排气 新生婴儿肚子胀气怎么办