欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring-boot集成pg、mongo多數(shù)據(jù)源過(guò)程詳解

 更新時(shí)間:2019年10月12日 10:07:48   投稿:yaominghui  
這篇文章主要介紹了Spring-boot集成pg、mongo多數(shù)據(jù)源過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Spring-boot集成pg、mongo多數(shù)據(jù)源過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

修改POM文件,增加相應(yīng)Jar包

<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-mongodb</artifactId>
	</dependency>
<dependency>
		<groupId>org.postgresql</groupId>
		<artifactId>postgresql</artifactId>
		<scope>runtime</scope>
	</dependency>
<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

修改啟動(dòng)類(lèi),去除原有的數(shù)據(jù)源自動(dòng)加載機(jī)制

@SpringBootApplication(
    exclude = {DataSourceAutoConfiguration.class, 
          PageHelperAutoConfiguration.class ,
    		  MongoAutoConfiguration.class, MongoDataAutoConfiguration.class//禁用數(shù)據(jù)源自動(dòng)配置
    })
@EnableEurekaClient
public class MainApplication {、、、

編寫(xiě)application.yml文件,增加配置信息

spring:
  # 默認(rèn)的postgreSQL庫(kù)
 datasource:
  pg:
   url: jdbc:postgresql://127.0.0.1:5432/pgdb
   username: us_wu
   password: netcool@919
   driver-class-name: org.postgresql.Driver
  mg:
   host: 127.0.0.1
   username: aaa
   password: aaa
   database: mgdb
   port: 27017

分別手動(dòng)增加PG、mongo的數(shù)據(jù)源以及使用樣例

pg

1、手動(dòng)加載數(shù)據(jù)源

@Configuration
public class DataSourceConfig {
  final String cmspg="spring.datasource.pg";

  @Bean(name = "pgDS")
  @ConfigurationProperties(prefix =pg) 
  public DataSource dataSource() {
    return DataSourceBuilder.create().build();
  }

2、創(chuàng)建pg配置文件,指定SqlSessionFactory以及要掃描的Dao

@Configuration
@MapperScan(basePackages = {"com.**.mapper.pg"}, sqlSessionFactoryRef = "sqlSessionFactory")
public class PostgresDBConfig {

  @Autowired
  @Qualifier("pgDS")
  private DataSource pgDS;


  @Bean
  public SqlSessionFactory sqlSessionFactory() throws Exception {
    SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
    factoryBean.setDataSource(pgDS);  
    return factoryBean.getObject();

  }
  @Bean
  public SqlSessionTemplate sqlSessionTemplate() throws Exception {
    SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory()); // 使用上面配置的Factory
    return template;
  }
}

3、編寫(xiě)Dao--注解形式

@Repository
@Mapper
public interface StCableFiberMapper {

  @Select("SELECT * FROM st_cable_fiber WHERE id = #{id}")
  St_cable_fiber findById(@Param("id") String id);

mongo

1、加載mongo配置信息

public abstract class AbstractMongoConfigure {

		private String host, database, username, password;
		private int port;
		// Setter methods go here..
	 
		/*
		 * Method that creates MongoDbFactory Common to both of the MongoDb
		 * connections
		 */
		public MongoDbFactory mongoDbFactory() throws Exception {
			ServerAddress serverAddress = new ServerAddress(host, port);
			List<MongoCredential> mongoCredentialList = new ArrayList<>();
			mongoCredentialList.add(MongoCredential.createScramSha1Credential(username, database, password.toCharArray()));
			return new SimpleMongoDbFactory(new MongoClient(serverAddress,mongoCredentialList), database);
		}
	 
		/*
		 * Factory method to create the MongoTemplate
		 */
		abstract public MongoTemplate getMongoTemplate() throws Exception;
}

@Configuration
@EnableMongoRepositories(basePackages = {"com.**.mapper.mg"},mongoTemplateRef = "mongoTemplate") 
@ComponentScan
@ConfigurationProperties(prefix = "spring.datasource.mg")
public class MongoMasterConfig extends AbstractMongoConfigure{

	@Override
	@Bean("mongoTemplate")
	public MongoTemplate getMongoTemplate() throws Exception {
		return new MongoTemplate(mongoDbFactory()); 
	}

}

編寫(xiě)Dao MongoTemplate模式

@Repository
public class CmCableDetailRepo{

	@Autowired
	private MongoTemplate mongoTemplate;

	public Page<Cm_Cable> findByLevelAndName(String areacode, int level,String name,int pageNum, int pageSize){

		PageRequest page = new PageRequest(pageNum, pageSize);
		Query query = new Query();
		Criteria criteria = new Criteria();
		criteria.and("areacode").regex("^"+areacode);
		if(level > -1){
			criteria.and("cableSegment_level").is(level);
		}
		if(null != name && name.trim().length() > 0){
			criteria.and("zh_label").regex(".*?"+name+".*");
		}
		query.addCriteria(criteria);
		Long count = mongoTemplate.count(query, Cm_Cable.class);

		List<Cm_Cable> list = mongoTemplate.find(query.with(page), Cm_Cable.class);
		return new PageImpl<Cm_Cable>(list, page, count);
	}

MongoRepository模式

@Repository
public interface CmCableDetailMapper extends MongoRepository<Cm_Cable, String>{
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中的對(duì)象和引用詳解

    Java中的對(duì)象和引用詳解

    這篇文章主要介紹了Java中的對(duì)象和引用詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Java調(diào)用商品詳情API的項(xiàng)目實(shí)踐

    Java調(diào)用商品詳情API的項(xiàng)目實(shí)踐

    在現(xiàn)代電子商務(wù)網(wǎng)站中,商品詳情API是一個(gè)重要的組件,本文就來(lái)介紹一下Java調(diào)用商品詳情API的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • 8張圖帶你全面了解Java?kafka的核心機(jī)制

    8張圖帶你全面了解Java?kafka的核心機(jī)制

    kafka是目前企業(yè)中很常用的消息隊(duì)列產(chǎn)品,可以用于削峰、解耦、異步通信,本文就通過(guò)幾張圖帶大家全面認(rèn)識(shí)一下kafka,現(xiàn)在我們不妨帶入kafka設(shè)計(jì)者的角度去思考該如何設(shè)計(jì),它的架構(gòu)是怎么樣的、都有哪些組件組成、如何進(jìn)行擴(kuò)展等等,需要的朋友可以參考下
    2023-05-05
  • 冒泡排序算法原理及JAVA實(shí)現(xiàn)代碼

    冒泡排序算法原理及JAVA實(shí)現(xiàn)代碼

    關(guān)鍵字較小的記錄好比氣泡逐趟上浮,關(guān)鍵字較大的記錄好比石塊下沉,每趟有一塊最大的石塊沉底
    2014-01-01
  • Java基礎(chǔ)之簡(jiǎn)單的圖片處理

    Java基礎(chǔ)之簡(jiǎn)單的圖片處理

    這篇文章主要介紹了Java基礎(chǔ)之簡(jiǎn)單的圖片處理,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • spring boot發(fā)簡(jiǎn)單文本郵件案例

    spring boot發(fā)簡(jiǎn)單文本郵件案例

    這篇文章主要介紹了spring boot發(fā)簡(jiǎn)單文本郵件案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 如何在MyBatis中實(shí)現(xiàn)DataSource

    如何在MyBatis中實(shí)現(xiàn)DataSource

    今天給大家整理了如何在MyBatis中實(shí)現(xiàn)DataSource,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • spring-data-elasticsearch @Field注解無(wú)效的完美解決方案

    spring-data-elasticsearch @Field注解無(wú)效的完美解決方案

    這篇文章主要介紹了spring-data-elasticsearch @Field注解無(wú)效的完美解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot全局異常處理方式

    SpringBoot全局異常處理方式

    這篇文章主要介紹了SpringBoot全局異常處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java之Spring認(rèn)證使用Profile配置運(yùn)行環(huán)境講解

    Java之Spring認(rèn)證使用Profile配置運(yùn)行環(huán)境講解

    這篇文章主要介紹了Java之Spring認(rèn)證使用Profile配置運(yùn)行環(huán)境講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評(píng)論