前言
什么叫整合?整合,就是把spring框架和其他框架结合使用,实现更强大,更灵活的功能,帮助开发人员高效快速构建复杂的软件系统。
Spring 整合Mybatis
- 数据源对应的配置类
package com.itheima.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
/**
* @author lp
* @version 1.0
* @date 2023/10/18 16:15
*/
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String userName;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource(){
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(userName);
ds.setPassword(password);
return ds;
}
}
- Mybatis对应的配置类
package com.itheima.config;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;
/**
* @author lp
* @version 1.0
* @date 2023/10/18 16:19
*/
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
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer msc = new MapperScannerConfigurer();
msc.setBasePackage("com.itheima.dao");
return msc;
}
}
Spring整合Junit
// 设置类运行器
@RunWith(SpringJUnit4ClassRunner.class)
// 设置spring环境对应的配置类
@ContextConfiguration(classes = SpringConfig.class)
public class AccountTest {
@Autowired
private AccountService accountService;
@Test
public void testFindById() {
System.out.println(accountService.findById(2));
}
@Test
public void testFindAll() {
System.out.println(accountService.findAll());
}
}