照書上步驟使用BeanNameAutoProxyCreator為項(xiàng)目添加了spring事務(wù)管理機(jī)制,可是在java代碼中使用StudentDAO stdao = (StudentDAO)ctx.getBean("StudentDAO");Student st = new Student("張三");stdao.save(st);報(bào)錯(cuò)java.lang.ClassCastException: $Proxy0 cannot be cast to...網(wǎng)上說(shuō)需要將ctx.getBean()方法的返回值用接口類接收,改為IStudentDAO stdao = (IStudentDAO)ctx.getBean("StudentDAO");Student st = new Student("張三");stdao.save(st);其中IStudentDAO是接口類,StudentDAO是它的實(shí)現(xiàn)類,這里為什么申明一個(gè)接口類可以直接使用實(shí)現(xiàn)類定義的方法呢?ctx.getBean()的返回值明明被強(qiáng)制轉(zhuǎn)換成了IStudentDAO啊,是不是因?yàn)镾pring管理機(jī)制在搗鬼呢?希望有高手能詳細(xì)給我解釋解釋這樣用接口類的理由,如果是Spring事務(wù)管理在搗鬼,希望也能解釋一下為什么Spring事務(wù)管理要這么設(shè)計(jì)
- 1 回答
- 0 關(guān)注
- 1185 瀏覽
添加回答
舉報(bào)
0/150
提交
取消