new ClassPathResource("") 怎样匹配多个好吧,hbm.xml文件
时间: 2023-07-13 14:39:09 浏览: 246
可以使用 `PathMatchingResourcePatternResolver` 类来扫描指定目录下的所有符合条件的文件,包括 Hibernate 的映射文件。下面是一个示例代码:
```java
@Configuration
@EnableTransactionManagement
public class HibernateConfig {
@Autowired
private Environment env;
@Bean
public LocalSessionFactoryBean sessionFactory() throws IOException {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan(env.getProperty("hibernate.packagesToScan"));
sessionFactory.setHibernateProperties(hibernateProperties());
sessionFactory.setMappingLocations(mappingLocations());
return sessionFactory;
}
@Bean
public DataSource dataSource() {
// ...
}
private final Properties hibernateProperties() {
// ...
}
private Resource[] mappingLocations() throws IOException {
String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + "com/example/demo/entity/*.hbm.xml";
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
return resolver.getResources(packageSearchPath);
}
}
```
在上面的配置中,我们使用 `PathMatchingResourcePatternResolver` 类来扫描 `com.example.demo.entity` 包下的所有 `.hbm.xml` 文件。`mappingLocations()` 方法返回一个 `Resource[]` 数组,其中包含了所有符合条件的映射文件。这个数组将作为 `LocalSessionFactoryBean` 中的 `mappingLocations` 属性的值,用于加载 Hibernate 的映射文件。
阅读全文