SSM整合

SSM整合其实不难,不同的人会有不同的项目结构

这里我的项目结构是这样:

── com
   └── james
   ├── controller
   │   └── UserHandler.class
   ├── entity
   │   └── User.class
   ├── repository
   │   ├── UserRepository.class
   │   └── UserRepository.xml
   └── service
   ├── Impl
   │   └── UserServiceImpl.class
   └── UserService.class

第一次实际操作整合,还是会出一点小问题

如果自动扫描直接写的是根目录com.james的话其实mapper里就直接可以写类名就ok,因为已经注入到IoC中

比如我们的Mapper里的resultType写User就好

其次的是Dao->Service->Controller逐层都是要调用的,每一层都要加@Autowired

Service中的UserRepository要加

Controller中的UserService要加

代表自动装载Bean

这里我还是没有直觉,既然已经学习过了NestJs,其实应该对于这个@Autowired注解很敏感才对

NestJs也是逐层调用,Module中管理注入配置,当然我们不能图省事不写service层而直接在controller中select、update等等

我在一开始粗心在service层忘记加了那么就会出现空指针异常,controller去调service层,结果发现没有对应方法

其次就是有关于事务的注解tx这里还没有加入,所以会console出事务不被spring管理的信息

最后就是c3p0的警告,我一开始使用的是0.9.1.2版本,爆出异常

java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.isClosed()Z is abstract

这里更新c3p0到0.9.5.2即可,注意groupId变为com.mchange了

我的controller里还是返回的ModelAndView类型,之后和Vue对接的时候会换成Vue接受的数据类型。

目前还未更新

原文地址:https://www.cnblogs.com/exigeslover/p/12608806.html