public class MyBatisConfig { @Autowired private Environment env; }怎么将env字段值直接注入“sqlSessionFactory”?
时间: 2024-03-16 11:42:13 浏览: 52
MyBatis构建SqlSessionFactory.txt
可以使用`@Bean`注解来创建`sqlSessionFactory`实例,并在`@Bean`注解中注入`env`字段值,如下所示:
```java
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setTypeAliasesPackage(env.getProperty("mybatis.typeAliasesPackage"));
// 设置 MyBatis 配置文件路径
sessionFactory.setConfigLocation(new ClassPathResource(env.getProperty("mybatis.configLocation")));
// 设置 Mapper 映射文件路径
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sessionFactory.setMapperLocations(resolver.getResources(env.getProperty("mybatis.mapperLocations")));
return sessionFactory.getObject();
}
```
在上述代码中,通过`env.getProperty()`方法获取了`mybatis.typeAliasesPackage`、`mybatis.configLocation`和`mybatis.mapperLocations`等属性的值,并将其注入到`SqlSessionFactory`实例中。这样就可以通过`@Autowired`注解将`env`字段值直接注入`sqlSessionFactory`了。
阅读全文