入门

这一章节将向你展示 MyBatis-CDI 的安装步骤。

安装

要使用 MyBatis-CDI 模块,你只需要将 mybatis-cdi-2.1.0.jar 文件和它的依赖置于类路径中。

如果你使用 Maven, 只需要将以下依赖添加到你的 pom.xml 中:


<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-cdi</artifactId>
  <version>2.1.0</version>
</dependency>

快速搭建环境

首先,开启 MyBatis-CDI 需要向你的 META-INF 文件夹中添加 beans.xml 文件。

接下来,使用 MyBatis-CDI 至少需要两样东西: SqlSessionFactory 和用于注入 Mybatis mapper 的 CDI 组件(bean).

创建一个生成器(producer)方法,返回一个应用域(application scoped)的 SqlSessionFactory 并带有 @SessionFactoryProvider 注解:


import jakarta.enterprise.inject.Produces;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.cdi.SessionFactoryProvider;
        
public class SqlSessionFactoryProvider {

  @Produces
  @ApplicationScoped
  @SessionFactoryProvider
  public SqlSessionFactory produceFactory() {
    SqlSessionFactory factory = create the factory instance ....
    return factory;
  }

}

假定你有一个像下面这样的 mapper 接口(注意:必须在 mapper 上添加 @Mapper 注解):


@Mapper
public interface UserMapper {
  @Select("SELECT * FROM users WHERE id = #{userId}")
  User getUser(@Param("userId") String userId);
} 

你可以使用 @Inject 将任意的依赖注入到 CDI 组件中去:


import jakarta.inject.Inject;
        
public class FooServiceImpl implements FooService {

@Inject UserMapper userMapper;

public User doSomeStuff(String userId) {
  return this.userMapper.getUser(userId);
}