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接受的数据类型。
目前还未更新