我发现一个很奇怪的问题

我发现一个很奇怪的问题

Intelij IDEA创建装载xml文件的包用 . (如com.imooc.sm.dao)分割包名竟然无法识别到里面的映射文件,而用 /  (如com/imooc/sm/dao)分割包名竟然可以识别到里面的映射文件。而且创建之后显示效果竟无任何差别!!!!! 这是什么原因

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好。给同学举个例子可能更容易理解:

比如我在创建的时候,使用“.”分割创建了包“com.imooc.test”使用“/”分割创建了包“com.imooc.sm.dao”,在√存在的时候,显示如下,看不出区别:

http://img1.sycdn.imooc.com//climg/5d1466ef00019e1b08230531.jpg

在将对勾去掉以后,显示如下:

http://img1.sycdn.imooc.com//climg/5d1467330001381a08260538.jpg

可以看出,idea将使用“.”分割的包当做了名为“com.imooc.test”的一个包,而不是多层的包。

而我们的映射文件需要和接口文件位置一致。所以会寻找不到。

http://img1.sycdn.imooc.com//climg/5d14683f00015a8e03220391.jpg

如果解答了同学的疑问,望采纳~

祝学习愉快~


  • 慕尼黑7895541 提问者 #1
    所以在放置配置文件的目录下,创建的package时需要用/来分割吗
    2019-06-27 15:01:57
  • 芝芝兰兰 回复 提问者 慕尼黑7895541 #2
    是的,需要使用“/”来分割
    2019-06-27 15:17:13
芝芝兰兰 2019-06-27 10:50:08

同学你好,只是idea 的问题,使用“.”分割创建包后视为了一个包,而不是多层级的包。然而多层级的包显示,却都是以“.”显示的。为了防止这种情况,可以设置为多层结构显示:

点击小齿轮,勾选取消-Compact Middle Packages

http://img1.sycdn.imooc.com//climg/5d142e680001c39a03040369.jpg

祝学习愉快~

  • 提问者 慕尼黑7895541 #1
    老师不是这个意思。。在resouces目录下创建的包需要以/来分割包与包直接命名,例如com/imooc/sm/dao 这样创建和com.imooc.sm dao看不出区别。生成之后几乎一样但是在com/imooc/sm/dao生成的package下创建映射文件会识别的到,而com.imooc.sm dao生成的package确运行时无法识别到,但也没报错
    2019-06-27 13:48:20
  • 提问者 慕尼黑7895541 #2
    没报错是IDEA在未编译时没识别到错误,而运行调用时出现错误
    2019-06-27 14:00:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师