/** * Takes a resource pattern as (@see org.springframework.core.io.support.PathMatchingResourcePatternResolver) * This allows you load multiple bean resources in this single builder * * eg loadBeans("classpath:*Beans.groovy") * * @param resourcePattern * @throws IOException When the path cannot be matched */ public void loadBeans(String resourcePattern) throws IOException { loadBeans(new PathMatchingResourcePatternResolver().getResources(resourcePattern)); }
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); resolver.getResources("classpath*:some/package/name/**/*.xml");
@Bean(name = "test1SqlSessionFactory") @Primary public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/test1/*.xml")); return bean.getObject(); }
private List<String> matchingDirectories(File dir, String value) { List<String> output = new ArrayList<String>(); try { PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver( this.resourceLoader); String path = new File(dir, value).toURI().toString(); for (Resource resource : resolver.getResources(path)) { if (resource.getFile().isDirectory()) { output.add(resource.getURI().toString()); } } } catch (IOException e) { } return output; }
@Bean(name = "test2SqlSessionFactory") public SqlSessionFactory testSqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/test2/*.xml")); return bean.getObject(); }
@Test(expected = FileNotFoundException.class) public void invalidPrefixWithPatternElementInIt() throws IOException { resolver.getResources("xx**:**/*.xy"); }
String rootDirPath = determineRootDir(locationPattern); String subPattern = locationPattern.substring(rootDirPath.length()); Resource[] rootDirResources = getResources(rootDirPath); Set<Resource> result = new LinkedHashSet<>(16); for (Resource rootDirResource : rootDirResources) {
@Test public void rootPatternRetrievalInJarFiles() throws IOException { Resource[] resources = resolver.getResources("classpath*:*.dtd"); boolean found = false; for (Resource resource : resources) { if (resource.getFilename().equals("aspectj_1_5_0.dtd")) { found = true; } } assertTrue("Could not find aspectj_1_5_0.dtd in the root of the aspectjweaver jar", found); }
new PathMatchingResourcePatternResolver(); try { Resource[] resourceList = pathMatchingResourcePatternResolver.getResources(filename); for (Resource resource : resourceList) { resources.add(resource);
@Test public void classpathWithPatternInJar() throws IOException { Resource[] resources = resolver.getResources("classpath:org/reactivestreams/*.class"); assertProtocolAndFilenames(resources, "jar", CLASSES_IN_REACTIVESTREAMS); }
@Test public void classpathStarWithPatternInJar() throws IOException { Resource[] resources = resolver.getResources("classpath*:org/reactivestreams/*.class"); assertProtocolAndFilenames(resources, "jar", CLASSES_IN_REACTIVESTREAMS); }
@Ignore // passes under Eclipse, fails under Ant @Test public void classpathStarWithPatternOnFileSystem() throws IOException { Resource[] resources = resolver.getResources("classpath*:org/springframework/core/io/sup*/*.class"); // Have to exclude Clover-generated class files here, // as we might be running as part of a Clover test run. List<Resource> noCloverResources = new ArrayList<>(); for (Resource resource : resources) { if (!resource.getFilename().contains("$__CLOVER_")) { noCloverResources.add(resource); } } resources = noCloverResources.toArray(new Resource[noCloverResources.size()]); assertProtocolAndFilenames(resources, "file", StringUtils.concatenateStringArrays(CLASSES_IN_CORE_IO_SUPPORT, TEST_CLASSES_IN_CORE_IO_SUPPORT)); }
private void initReadyToInstallDependencies() { DynamicScriptEngine engine = DynamicScriptEngineFactory.getEngine("js"); try { Resource[] resources = new PathMatchingResourcePatternResolver().getResources(installScriptPath); List<SimpleDependencyInstaller> installers = new ArrayList<>(); for (Resource resource : resources) { String script = StreamUtils.copyToString(resource.getInputStream(), Charset.forName("utf-8")); SimpleDependencyInstaller installer = new SimpleDependencyInstaller(); engine.compile("__tmp", script); Map<String, Object> context = getScriptContext(); context.put("dependency", installer); engine.execute("__tmp", context).getIfSuccess(); installers.add(installer); } readyToInstall = installers; } catch (Exception e) { throw new RuntimeException(e); } finally { engine.remove("__tmp"); } }
@Bean public SqlSessionFactory sqlSessionFactoryBean() throws Exception { PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource()); sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:/mapper/*Mapper.xml")); return sqlSessionFactoryBean.getObject(); }
@Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource()); //mybatis分页 PageHelper pageHelper = new PageHelper(); Properties props = new Properties(); props.setProperty("dialect", "mysql"); props.setProperty("reasonable", "true"); props.setProperty("supportMethodsArguments", "true"); props.setProperty("returnPageInfo", "check"); props.setProperty("params", "count=countSql"); pageHelper.setProperties(props); //添加插件 sqlSessionFactoryBean.setPlugins(new Interceptor[]{pageHelper}); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:org/xxpay/dal/dao/mapper/*.xml")); return sqlSessionFactoryBean.getObject(); }
@Override public void run(String... args) throws Exception { if (sqlExecutor.tableExists("QRTZ_LOCKS")) { return; } DatabaseType databaseType = DataSourceHolder.currentDatabaseType(); String databaseTypeName = databaseType.name(); if (databaseType == DatabaseType.jtds_sqlserver) { databaseTypeName = DatabaseType.sqlserver.name(); } String file = "classpath*:/quartz/sql/quartz-" + databaseTypeName + "-create.sql"; Resource[] resources = new PathMatchingResourcePatternResolver().getResources(file); for (Resource resource : resources) { try (Reader reader = new InputStreamReader(resource.getInputStream())) { String str = FileUtils.reader2String(reader); List<String> sqlList = Sqls.parse(str); for (String sql : sqlList) { if (StringUtils.isEmpty(sql)) return; sqlExecutor.exec(sql); } } } } }
@Test public void singleResourceInJar() throws IOException { Resource[] resources = resolver.getResources("org/reactivestreams/Publisher.class"); assertEquals(1, resources.length); assertProtocolAndFilenames(resources, "jar", "Publisher.class"); }
@Test public void singleResourceOnFileSystem() throws IOException { Resource[] resources = resolver.getResources("org/springframework/core/io/support/PathMatchingResourcePatternResolverTests.class"); assertEquals(1, resources.length); assertProtocolAndFilenames(resources, "file", "PathMatchingResourcePatternResolverTests.class"); }
private DatabasePopulator databasePopulator() throws IOException { ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator(); resourceDatabasePopulator.setContinueOnError(false); resourceDatabasePopulator.addScripts( new PathMatchingResourcePatternResolver().getResources("classpath:/h2/*.sql") ); return resourceDatabasePopulator; }
@Bean("mybatisSqlSession") public SqlSessionFactory sqlSessionFactory(DataSource dataSource, GlobalConfig globalConfig, PaginationInterceptor paginationInterceptor) throws Exception { MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); /* 数据源 */ sqlSessionFactory.setDataSource(dataSource); /* 枚举扫描 */ sqlSessionFactory.setTypeEnumsPackage("com.baomidou.mybatisplus.test.base.enums"); /* xml扫描 */ sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources("classpath:/mapper/*.xml")); /* 扫描 typeHandler */ sqlSessionFactory.setTypeHandlersPackage("com.baomidou.mybatisplus.test.base.type"); MybatisConfiguration configuration = new MybatisConfiguration(); configuration.setJdbcTypeForNull(JdbcType.NULL); /* 驼峰转下划线 */ configuration.setMapUnderscoreToCamelCase(true); /* 分页插件 */ configuration.addInterceptor(paginationInterceptor); /* 乐观锁插件 */ configuration.addInterceptor(new OptimisticLockerInterceptor()); sqlSessionFactory.setConfiguration(configuration); /* 自动填充插件 */ globalConfig.setMetaObjectHandler(new MysqlMetaObjectHandler()); sqlSessionFactory.setGlobalConfig(globalConfig); return sqlSessionFactory.getObject(); }