O projeto precisa obter dados de outros sites, porque é um requisito temporário. Eu não esperava que várias fontes de dados fossem necessárias ao iniciar o projeto.
Então, o Baidu descobriu que só precisa alterar o arquivo ApplicationContext.xml da Spring e escrever três classes de ferramentas para implementá -lo perfeitamente.
ApplicationContext.xml
<!-- Multi-data source configuration--> <bean id="ds1"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name = "senha" value = "" /> < /bean> <bean id = "ds2"> <propriedade name = "driverclassName" value = "" " /> <names name =" url "value =" " /> <nome da propriedade =" nome de usuário "value =" " /> <nome da propriedade" "=" " /> < /! id = "DataSource"> // Este é o caminho para dinâmicodataSource.java em seu projeto <propriedade name = "TargetDataSources"> <map key-type = "java.lang.string"> <entradas de entrada-ref = "ds_admin" = "ds1"> </entrada> <purt> </map> </propriedade> <!-Fonte de dados usando DS1 por padrão-> <propriedade name = "defaultTargetDataSource" ref = "ds_admin"> </propriedade> </bean>DataSourceContextholder.java
classe pública DataSourceContextHolder {private Static final ThreadLocal <String> contextHolder = new ThreadLocal <String> (); public static void setDbtype (string dbtype) {contextholder.set (dbtype); } public static string getdbtype () {return ((string) contextholder.get ()); } public static void cleardbtype () {contextholder.remove (); }} DataSourCetype.java (defina variáveis estáticas)
classe pública DataSourCetype {// Database padrão public static final string fonte_admin = "ds1"; // O segundo banco de dados, ID em ApplicationContext.xml public static final string fonte_partner = "ds2";}Em seguida, é o principal dinâmicoDataSource.java herda o método abstrato determinadoCurrentLookupKey no abstractroutingDataSource, que é o núcleo de implementar a rota da fonte de dados. Este método é substituído.
importar org.springframework.jdbc.dataSource.lookup.abstractoutingDataSource; classe pública dinâmicaDataSource estende abstractroutingDataSource {@Override objeto protegido DeterminCurrentLookLey () {retorna datAsourConstHoldPer.GetBtty; }}O acima exposto é uma análise dos exemplos de uso da fonte de vários dados do MVC Mybatis da primavera introduzida pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!