intellij maven ssm 集成

新接触intellij和maven,用来集成ssm框架的过程中踩了几个坑也有一点感受。

首先,intellij的集成化确实比eclipse要高一些,也被称为智能化,比如内置的彩色代码模块,但缺点就是不太成体系(也许是因为换了软件不习惯),不好全面掌握。

eclipse给我的感觉像西餐,明晰,简洁。而intellij就像中餐,也许美味,但不直观。一切都按照其内在逻辑打包在里面,用惯了会很好用,但作为一个有开发经验的程序员,会一时找不到各个功能模块,需要时间学习适应。

其次,maven确实大大简化了开发的,而且使用也不复杂,作为一个开发者,我们也不需要记忆各个依赖的书写。掌握基本规则,需要的话去网上查,直接粘贴就好了,很方便的摆脱了大量的jar包。

然后是一点坑,intellij的输出日志和eclipse完全不同,居然有了类别的划分,sever的日志,catAlina log,localhost log ,还可以调整是否显示,这是按类型作了区分,具体还在学习,相信会是一个大大方便开发者的改进。当然也许之前log4j也可以调整,但需要通过xml配置,不那么直观。

在ssm集成的过程中重温了一遍搭建框架的过程。springmvc的xml和注解两种配置方式不赘叙了。SpringMVC 的配置中了解了context:annotation-config与mvc:annotation-driven和context:component-scan标签。

mybatis的搭建中学习了几个标签,包括spring中<context:property-placeholder>和properties文件使用,数据库连接池,使用MapperScannerConfigurer简化MyBatis配置。

再就是mybatis映射sql文件的几种方式:

1.使用mapper.xml映射接口是比较简洁的,要注意mapper接口全类名必须跟xml文件的namespace相同,方法名也要和sql标签相同,一一对应才能让程序认识。

2.也可以用dao层和实现来做加上xml文件的标签实现,这个就是把上面的自动实现接口来手动完成了,太繁琐。

3.再次还可以用注解方式来实现,不过感觉sql太分散,结构不好。

另外还踩了一个坑,spring的自动注入@autowired似乎不能注入接口中的变量,只能注入实现类中,之前一直报空指针。我不得不把变量移到了实现类中才解决这个错误。根据推测,应该是接口中变量必须是有值的常量(即使是null),不能再改变了,这是为了接口的通用性。而自动注入的话违背了这个原则。所以很遗憾,必须放到实现类里去注入。

第二个坑是关于端口的,Tomcat启动后总是报404,主页都打不开,上网查过之后发现打开Tomcat所在bin目录,startup.bat启动都失败了,一闪而过。这个错误又没有显示在intellij的log中,没办法,我抓了截屏才看到了是socket bind failed错误,也就是端口的占用问题。说实话,我没找到冲突的程序,也许是tomcat本身,因为这个公司电脑装了好几个版本tomcat。于是就改端口,找到使用的tomcat的server.xml,更改了http和ajp端口,但是还报错,address is used 错误,于是又把shutdown的端口也改了,这才能启动tomcat。

第三个坑是关于intellij的,tomcat成功启动后还是404错误,感觉要崩溃了,但是access log起码有内容了,有了一个404的日志。这让我知道我离成功又近了一步。然后又开始查找配置,看日志,但是日志中的server和artifact都成功加载了。我以为是日志没有显示出来。中间查到intellij的项目是用代理的方式新建了一个虚拟的tomcat,将项目放到那个out dir下,所以有些错误是用了缓存没有更新导致的,因此也导致intellij无法访问tomcat的自有主页。但是最终我没有找到这方面的错误。最后偶然看到一个错误404是因为intellij的项目配置的web resource dirctionary(项目webapp绝对路径)错误导致,想起我在maven工程建立的时候按照指示改过这里,于是尝试修改后,发现成功了。

看来投机取巧,死板的按照步骤进行而不理解含义还是行不通的。

intellij的使用中,关于项目设置集中在file的project structure,而服务器设置集中在edit configration中,泾渭分明。

项目的建立可以按提示步骤一步步来,自动生成maven或其他项目。再搭建完文件后,手动设置其web属性,加载spring框架(应该是识别spring的过程)。最后还需要把项目加载到服务器的配置中,才可以启动项目。

发布了4 篇原创文章 · 获赞 0 · 访问量 1409

猜你喜欢

转载自blog.csdn.net/ws199199/article/details/80227524
今日推荐