[{"title":"( 34 个子文件 92KB ) una-saas-toturial:基于Spring Boot 和 JPA构建的SaaS多租户应用系统,提供动态数据源切换,采用的数据隔离方式为共享DB,独立Schema","children":[{"title":"una-saas-toturial-master","children":[{"title":"mvnw.cmd <span style='color:#111;'> 5.67KB </span>","children":null,"spread":false},{"title":"mvnw <span style='color:#111;'> 8.90KB </span>","children":null,"spread":false},{"title":"src","children":[{"title":"test","children":[{"title":"java","children":[{"title":"com","children":[{"title":"ramostear","children":[{"title":"una","children":[{"title":"saas","children":[{"title":"UnaSaasApplicationTests.java <span style='color:#111;'> 340B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"main","children":[{"title":"resources","children":[{"title":"templates","children":[{"title":"index.html <span style='color:#111;'> 451B </span>","children":null,"spread":false},{"title":"login.html <span style='color:#111;'> 1.61KB </span>","children":null,"spread":false}],"spread":true},{"title":"banner.txt <span style='color:#111;'> 3.09KB </span>","children":null,"spread":false},{"title":"application.yml <span style='color:#111;'> 745B </span>","children":null,"spread":false}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"ramostear","children":[{"title":"una","children":[{"title":"saas","children":[{"title":"common","children":[{"title":"util","children":[{"title":"DataSourceUtils.java <span style='color:#111;'> 2.52KB </span>","children":null,"spread":false},{"title":"TwitterIdentifier.java <span style='color:#111;'> 3.68KB </span>","children":null,"spread":false}],"spread":true},{"title":"lang","children":[{"title":"ObjectIdentifier.java <span style='color:#111;'> 1.63KB </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"tenant","children":[{"title":"service","children":[{"title":"impl","children":[{"title":"UserServiceImpl.java <span style='color:#111;'> 2.71KB </span>","children":null,"spread":false}],"spread":false},{"title":"UserService.java <span style='color:#111;'> 1.64KB </span>","children":null,"spread":false}],"spread":false},{"title":"model","children":[{"title":"User.java <span style='color:#111;'> 2.28KB </span>","children":null,"spread":false}],"spread":false},{"title":"config","children":[{"title":"TenantDataSourceConfig.java <span style='color:#111;'> 5.64KB </span>","children":null,"spread":false},{"title":"CurrentTenantIdentifierResolverImpl.java <span style='color:#111;'> 2.37KB </span>","children":null,"spread":false},{"title":"DataSourceBasedMultiTenantConnectionProviderImpl.java <span style='color:#111;'> 3.16KB </span>","children":null,"spread":false}],"spread":false},{"title":"repository","children":[{"title":"UserRepository.java <span style='color:#111;'> 1.84KB </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"web","children":[{"title":"IndexController.java <span style='color:#111;'> 1.67KB </span>","children":null,"spread":false},{"title":"LoginController.java <span style='color:#111;'> 2.67KB </span>","children":null,"spread":false}],"spread":false},{"title":"config","children":[{"title":"InterceptorConfig.java <span style='color:#111;'> 2.04KB </span>","children":null,"spread":false}],"spread":false},{"title":"master","children":[{"title":"service","children":[{"title":"MasterTenantService.java <span style='color:#111;'> 1.72KB </span>","children":null,"spread":false},{"title":"impl","children":[{"title":"MasterTenantServiceImpl.java <span style='color:#111;'> 2.20KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"model","children":[{"title":"MasterTenant.java <span style='color:#111;'> 2.53KB </span>","children":null,"spread":false}],"spread":false},{"title":"config","children":[{"title":"properties","children":[{"title":"MasterDatabaseProperties.java <span style='color:#111;'> 2.89KB </span>","children":null,"spread":false}],"spread":false},{"title":"MasterDatabaseConfig.java <span style='color:#111;'> 5.98KB </span>","children":null,"spread":false}],"spread":false},{"title":"repository","children":[{"title":"MasterTenantRepository.java <span style='color:#111;'> 1.95KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"context","children":[{"title":"TenantContextHolder.java <span style='color:#111;'> 1.78KB </span>","children":null,"spread":false}],"spread":false},{"title":"UnaSaasApplication.java <span style='color:#111;'> 521B </span>","children":null,"spread":false},{"title":"interceptor","children":[{"title":"TenantInterceptor.java <span style='color:#111;'> 2.21KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":".mvn","children":[{"title":"wrapper","children":[{"title":"MavenWrapperDownloader.java <span style='color:#111;'> 4.52KB </span>","children":null,"spread":false},{"title":"maven-wrapper.jar <span style='color:#111;'> 47.20KB </span>","children":null,"spread":false},{"title":"maven-wrapper.properties <span style='color:#111;'> 116B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"pom.xml <span style='color:#111;'> 2.26KB </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 303B </span>","children":null,"spread":false}],"spread":true}],"spread":true}]