Spring Boot-配置MongoDB、关系性数据库数据源

package com.bjhy.platform.supermarket.conifig;

import java.util.Arrays;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.WriteConcern;

/**
 * MongoDB数据源配置
 * 
 * @author xiaowen
 *
 */
@Configuration
@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
@ComponentScan
@EnableMongoRepositories
public class MongoDataSourceConfig extends AbstractMongoConfiguration{

	// 数据库名
	@Value("${mongo.dbname}")
	private String dbName;
	// 数据库地址
	@Value("${mongo.dbhost}")
	private String dbHost;
	// 数据库端口
	@Value("${mongo.dbport}")
	private String dbPort;
	// 用户名
	@Value("${mongo.username}")
	private String userName;
	// 密码
	@Value("${mongo.password}")
	private String password;

	/**
	 * 无参数的构造函数
	 */
	public MongoDataSourceConfig() {
		if (null == dbHost || "".equalsIgnoreCase(dbHost.trim())) {
			dbHost = "27017";
		}
	}

	@SuppressWarnings("deprecation")
	@Bean
	public Mongo mongo() throws Exception {
		ServerAddress serverAdress = new ServerAddress(dbHost, Integer.valueOf(dbPort));
		MongoCredential credential = MongoCredential.createMongoCRCredential(userName, dbName, password.toCharArray());
		Mongo mongo = new MongoClient(serverAdress, Arrays.asList(credential));
		mongo.setWriteConcern(WriteConcern.SAFE);
		return mongo;
	}

	public String getDbName() {
		return dbName;
	}

	public void setDbName(String dbName) {
		this.dbName = dbName;
	}

	public String getDbHost() {
		return dbHost;
	}

	public void setDbHost(String dbHost) {
		this.dbHost = dbHost;
	}

	public String getDbPort() {
		return dbPort;
	}

	public void setDbPort(String dbPort) {
		this.dbPort = dbPort;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	protected String getDatabaseName() {
		return this.dbName;
	}

}

关系型数据库数据源配置:

package com.bjhy.platform.supermarket.conifig;

import java.beans.PropertyVetoException;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
 * 关系性数据库数据源配置
 * @author xiaowen
 *
 */
@Configuration
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
public class MysqlDataSourceConfig {
	@Value("${db.driver}")
	private String driver;

	@Value("${db.url}")
	private String url;

	@Value("${db.username}")
	private String username;

	@Value("${db.password}")
	private String password;

	
	@Bean
	public DataSource dataSource(){
		ComboPooledDataSource ds = null;
		try {
			ds = new ComboPooledDataSource();
			ds.setDriverClass(driver);
			ds.setJdbcUrl(url);
			ds.setUser(username);
			ds.setPassword(password);
		} catch (PropertyVetoException e) {
			e.printStackTrace();
		}
	
		return ds;
		
	}
	public String getDriver() {
		return driver;
	}

	public void setDriver(String driver) {
		this.driver = driver;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
	

}
JdbcTeplate配置:

package com.bjhy.platform.supermarket.conifig;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
/**
 * JdbcTemplate配置
 * @author xiaowen
 *
 */
@Configuration
public class JdbcTemplateDBConfig {

	@Autowired
	@Qualifier("myDataSource")
	private DataSource dataSource;
	
	
	@Bean
	public JdbcTemplate JdbcTemplate(){
		return new JdbcTemplate(dataSource);
		
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值