发表于: 2019-12-21 22:18:16
1 1180
今天完成的事:
1、springboot整合mybatis。
首先添加依赖。
将之前的项目复制过来,目录结构如下。
并且在dao层接口上添加@Mapper注解。配置文件中读取mapper.xml文件。
(1)配置文件问题
运行时报错无法读取mapper.xml文件,尝试后发现是因为我用的yml配置文件,这个写的方便点,结构也很清晰,但是其与properfiles文件的相同配置不是仅仅分出结构而已,还会有细微的差别,如下,我之前写的是将properfiles文件中的mapper.xml文件读取配置,其实应该将其中的等号改成冒号。。
框选处为正确配置。成功返回json数据。
(2)修改驱动。
运行时提示不推荐使用“com.mysql.jdbc.Driver”,于是将其改为“com.mysql.cj.jdbc.Driver”。
运行又报错,需要加上时区值。
搜索了一下,“com.mysql.cj.jdbc.Driver”是 mysql-connector-java 6 中的,需要指定时区serverTimezone,在url后面添加“?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8”。
(3)运行没问题,但是service实现类中警告找不到bean。
百度后,解决办法分两种,一种是添加注解,或修改注解,另一种就是修改idea内的警告级别。
方法一(注解):
(1)在注解 @Autowired 后面添加“(required=false)”。
意味着告诉spring,在找不到匹配bean时也不报错。
(2)在mapper接口上添加@Component 或者 @Repository。
(3)在自动装配bean的位置,将 @Autowired 改为 @Resource 。
但是对于相关的解释并没有找到,我感觉应该是因为@Autowired默认根据byType,bean的类型注入,而springboot可能会需要更准确的信息指定bean,所以这里使用@Resource可以解决这个问题,因为@Resource默认根据byName注入。
(4)日志配置。
springboot默认使用 SLF4j+logback 。进行相关配置设置后,报错如下。
搜索后,得知:yml配置文件,不能以“%”开头,需要首尾加上“‘ ”单引号。
成功生成日志文件。
明天计划的事:
学习springcloud
遇到的问题:
无
收获:
1、springboot整合mybatis。
(1)配置文件问题
(2)修改驱动。
(3)运行没问题,但是service实现类中警告找不到bean。
(4)日志配置。
评论