(1)创建Mybatis配置类并配置SqlSessionFactory
public class MybatisConfig { //定义bean,SqlSessionFactoryBean,用于产生SqlSessionFactory对象 @Bean public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) { SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean(); //设置模型类的别名扫描 ssfb.setTypeAliasesPackage("com.itheima.domain"); //设置数据源 ssfb.setDataSource(dataSource); return ssfb; } //定义bean,返回MapperScannerConfigurer对象 @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer msc = new MapperScannerConfigurer(); msc.setBasePackage("com.itheima.dao"); return msc; } }(2)主配置类中引入Mybatis配置类
@Configuration @ComponentScan("com.itheima") @PropertySource("classpath:jdbc.properties") @Import({JdbcConfig.class, MybatisConfig.class}) public class SpringConfig { }(3)编写运行类
public class App2 { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class); AccountService accountService = ctx.getBean(AccountService.class); Account ac = accountService.findById(2); System.out.println(ac); } }
编写测试类
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = SpringConfig.class) public class AccountServiceTest { @Autowired private AccountService accountService; @Test public void testFindById() { System.out.println(accountService.findById(1)); } }注意:
(1)单元测试,如果测试的是注解配置类,则使用 @ContextConfiguration(classes = 配置类 .class)(2)单元测试,如果测试的是配置文件,则使用 @ContextConfiguration(locations={ 配置文件名,...})(3)Junit 运行后是基于 Spring 环境运行的,所以 Spring提供了一个专用的类运行器,这个务必要设 置,这个类运行器就在 Spring 的测试专用包中提供的,导入的坐标就是这个东西SpringJUnit4ClassRunner(4)上面两个配置都是固定格式,当需要测试哪个 bean时,使用自动装配加载对应的对象,下面的工作就和以前做 Junit 单元测试完全一样了

