SpringBoot与mybatis配置⽅法
1.⾸先,spring boot 配置mybatis需要的全部依赖如下:
<!-- Spring Boot 启动⽗依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
springboot结构
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<!-- spring boot 项⽬启动必须引⼊的web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.1.RELEASE</version>
</dependency>
<!-- Spring Boot Mybatis 依赖 -->
<dependency>
<groupId&batis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-- oracle的数据库驱动包 -->
<dependency>
<groupId&acle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4.0-atlassian-hosted</version>
</dependency>
这⾥主要说⼀下上边的数据库驱动包,oracle和mysql引⼊不同的依赖,千万不要忘记。如果忘记引⼊,会报不到驱动类异常。
2.然后,在application.properties 配置⽂件⾥添加如下内容:
##数据库连接信息
spring.datasource.url=jdbc:oracle:thin:@//192.168.1.171:1521/orcl
spring.datasource.username=znxd
spring.datasource.password=znxd
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
##指向mapper的xml⽂件位置
mybatis.mapper-locations=classpath:mapper/*l
上边以spring.datasource 开头的内容其实有很多,具体,在application.properties ⽂件⾥输⼊后看看能点出的内容就知道了。
  springboot默认会把spring.datasource开头的信息收纳,进⾏DataSource对象的配置,进⽽进⾏sqlSessionFactory的配置等相关数据库连接的配置,所以其他很多⼈会说写什么配置类,那些我感觉没有必要的。(配置druid需要配⼀个@Bean,下⼀篇会说到)
当然如果是特别详细的,⽽在application.properties⽂件⾥⼜通过spring.datasource 点不出相关的配置,那可能需要配置类什么的。
  mybatis.mapper-locations 所指向的位置是从src/main/resource开始的,前边需要加上classpath,它指向的是你的l⽂件放置的位置。
3.我是mybatis通过数据库表逆向⼯程⽣成的实体类、mapper等,先把项⽬具体的放置结构贴出来如下:
对于上图的解释如下:
启动类必须放在项⽬中相对其他类的最⾼处,前边⽂章说过,spring boot没有传统的spring 项⽬配置的<bean> 标签,它扫描bean的⽅式就是从启动类依次向下扫描进默认的内置tomcat容器的。
上图service放置的位置⽐其实现类放置的位置⾼,如果有两个service A和B,实现类⾥有Aimpl和Bimpl,如果有Aimpl调⽤B 的情况,有可能会在启动容器报“a field named ‘B' not found”貌似这种错误,说明容器扫描顺序有误。
这种情况的最好的解决办法,就应该像我将service放在⾼处,容器启动先扫描进service,然后再扫描impl,这样在实现类扫描的时候就肯定能到service,也就不会出现这种错误了。
另⼀种解决办法是在引⼊service时多添加⼀个注解:@Lazy
@Autowired
@Lazy //这样就会延迟加载,上图不需要,这⾥只是解释这注解
LogsUserActiveMapper logsUserActiveMapper;
总之,如果出现调⽤与被调⽤关系,⼀定要记得,被调⽤者要⾸先被扫描进spring boot内置容器,也就是被调⽤者的包位置要放的较⾼⼀些(位置⾄少也待相平)。
  3.service实现类上需要加⼀个@Service 注解。这个可能不需要,我⼀直没有试试。
  4.spring boot+mybatis除了这些要求,还需要在启动类处添加⼀个注解@MapperScan,如下:
package cloud.kafka;
batis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import ansaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@EnableTransactionManagement //如果mybatis中service实现类中加⼊事务注解,需要此处添加该注解
@MapperScan("cloud.kafka.mapper") //扫描的是l中namespace指向值的包位置
public class KafkaLogApplication {
public static void main(String[] args){
SpringApplication.run(KafkaLogApplication.class, args);
}
}
如下是我的l⾥namespace的值
<mapper namespace="cloud.kafka.mapper.LogsUserActiveMapper" >
这样就完成mybatis的配置了,下⼀篇会说spring boot+mybatis事务配置、druid配置、分页插件配置。
以上所述是⼩编给⼤家介绍的Spring Boot 与 mybatis配置⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。