springboot整合nutzDao使用多数据源配置
第一步、在配置文件中配置数据源
第二步、添加配置文件 注解进来
package com.gdup.gdup_analysis.config; import com.alibaba.druid.pool.DruidDataSource; import com.gdup.gdup_analysis.utils.JasyptUtils; import lombok.extern.java.Log; import lombok.extern.log4j.Log4j2; import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig; import org.nutz.dao.Dao; import org.nutz.dao.impl.NutDao; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.bind.Binder; import org.springframework.context.EnvironmentAware; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.core.env.Environment; import org.springframework.jdbc.core.JdbcTemplate; import javax.sql.DataSource; import java.util.HashMap; import java.util.Map; /** * @description: * @author: inhoo * @createTime:2018-04-23 */ @Configuration @Log4j2 public class DataSourceConfig implements EnvironmentAware { @Value("${spring.datasource.analysis.salt}") private String salt; @Value("${spring.datasource.gxsjk27.salt}") private String gxsjk27Salt; private Environment environment; private DataSource defaultDataSource; @Override public void setEnvironment(Environment environment) { this.environment = environment; } //配置主数据源 @Primary @Bean public DataSource initDataSource(){ Binder binder = Binder.get(environment); defaultDataSource = binder.bind("spring.datasource.analysis", DruidDataSource.class).get(); String password = ((DruidDataSource) defaultDataSource).getPassword(); ((DruidDataSource) defaultDataSource).setPassword(JasyptUtils.jasyptString(password, salt, 2)); return defaultDataSource; } //配置从数据源 @Bean(name = "gxsjk27") public DataSource initSDataSource(){ Binder binder = Binder.get(environment); defaultDataSource = binder.bind("spring.datasource.gxsjk27", DruidDataSource.class).get(); String password = ((DruidDataSource) defaultDataSource).getPassword(); ((DruidDataSource) defaultDataSource).setPassword(JasyptUtils.jasyptString(password, gxsjk27Salt, 2)); return defaultDataSource; } //主数据源绑定Nutz @Primary @Bean public Dao initNutzDao(DataSource dataSource){ return new NutDao(dataSource); } //从数据源绑定Nutz @Bean(name = "gxsjk27Dao") public Dao initSNutzDao(@Qualifier("gxsjk27") DataSource dataSource){ return new NutDao(dataSource); } }第三步、nutz使用
@Autowired
Dao dao;
@Autowired
@Qualifier("gxsjk27Dao")
Dao gxsjk27Dao;