我正在使用spring boot和spring数据休息来处理多租户应用,所以当用户输入url http://app/dbn_name
时,应用应该使用URL中指定的数据库,所有数据库都具有相同的数据库架构,所以问题是根据URL选择数据库,添加数据库的过程也应由最终用户完成,因此添加数据库应该动态完成,目前我正在应用程序中存储数据库访问信息。属性。
我发现了一个solution,但它已经老了,不适应弹簧靴,有没有适合弹簧靴的建议。
这是我的AppConfig.java
@EnableAutoConfiguration(exclude = {
org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class})
@ComponentScan(basePackages = { "com.geopro" })
@EnableJpaRepositories(basePackages = { "com.geopro.repositories" })
@EntityScan(basePackages = { "com.geopro.entities" })
@Import({ SecurityConfig.class , RepositoryConfig.class }) //
@EnableTransactionManagement
public class AppConfig {
@Bean
public HibernateJpaSessionFactoryBean sessionFactory(EntityManagerFactory emf) {
HibernateJpaSessionFactoryBean factory = new HibernateJpaSessionFactoryBean();
factory.setEntityManagerFactory(emf);
return factory;
}
}
CORS过滤器:
@Component
public class SimpleCORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "PUT, POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "1728000");
response.setHeader("X-Frame-Options", "ALLOW-FROM http://localhost:1841/geopro/");//ALLOW-FROM http://localhost:1841/geopro/
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, Content-Length, X-Requested-With, Cache-Control");
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {}
public void destroy() {}
}