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);
}
}