• axon mogoconfig


    //不需要认证的配置

    package com.icil.elsa.subscribe.milestone.common.config;
    
    import java.util.Collections;
    
    import org.axonframework.eventhandling.saga.repository.SagaStore;
    import org.axonframework.eventsourcing.eventstore.EventStorageEngine;
    import org.axonframework.mongo.DefaultMongoTemplate;
    import org.axonframework.mongo.MongoTemplate;
    import org.axonframework.mongo.eventhandling.saga.repository.MongoSagaStore;
    import org.axonframework.mongo.eventsourcing.eventstore.MongoEventStorageEngine;
    import org.axonframework.mongo.eventsourcing.eventstore.MongoFactory;
    import org.axonframework.mongo.eventsourcing.eventstore.documentperevent.DocumentPerEventStorageStrategy;
    import org.axonframework.serialization.json.JacksonSerializer;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import com.mongodb.MongoClient;
    import com.mongodb.ServerAddress;
    
    @Configuration
    public class AxonConfig {
    
    
        @Value("${spring.data.mongodb.host}")
        private String mongoUrl;
    
        @Value("${spring.data.mongodb.database}")
        private String mongoDbName;
    
    
        @Value("${spring.data.mongodb.port}")
        private int mongoPort;
    
        
        
        @Bean
        public EventStorageEngine eventStorageEngine(){
            return new MongoEventStorageEngine(
                    new JacksonSerializer(),null, axonMongoTemplate(), new DocumentPerEventStorageStrategy());
        }
        
    
        @Bean(name = "axonMongoTemplate")
        public MongoTemplate axonMongoTemplate() {
            return new DefaultMongoTemplate(mongoClient(), mongoDbName);
        }
    
        @Bean
        public MongoClient mongoClient(){
            MongoFactory mongoFactory = new MongoFactory();
            mongoFactory.setMongoAddresses(Collections.singletonList(new ServerAddress(mongoUrl,mongoPort)));
            return mongoFactory.createMongo();
        }
    
        @Bean
        public SagaStore sagaStore(){
            MongoTemplate mongoTemplate = new DefaultMongoTemplate(mongoClient());
            return new MongoSagaStore(mongoTemplate,  new JacksonSerializer());
        }
    }

    需要认证的配置:

    package com.icil.elsa.subscribe.milestone.common.config;
    
    import org.axonframework.eventhandling.saga.repository.SagaStore;
    import org.axonframework.eventsourcing.eventstore.EventStorageEngine;
    import org.axonframework.mongo.DefaultMongoTemplate;
    import org.axonframework.mongo.MongoTemplate;
    import org.axonframework.mongo.eventhandling.saga.repository.MongoSagaStore;
    import org.axonframework.mongo.eventsourcing.eventstore.MongoEventStorageEngine;
    import org.axonframework.mongo.eventsourcing.eventstore.documentperevent.DocumentPerEventStorageStrategy;
    import org.axonframework.serialization.Serializer;
    import org.axonframework.serialization.json.JacksonSerializer;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.autoconfigure.mongo.MongoClientFactory;
    import org.springframework.boot.autoconfigure.mongo.MongoProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.env.Environment;
    
    import com.mongodb.MongoClient;
    
    @Configuration
    public class CommandRepositoryConfiguration {
    
        @Value("${spring.data.mongodb.database}")
        private String mongoDbName;
        
        //@Value("${mongodb.username}")
        //private String mongoUserName;
        
        //@Value("${mongodb.password}")
        //private String mongoPass;
    
        //@Value("${mongodb.events.collection.name}")
       // private String eventsCollectionName;
    
        //@Value("${mongodb.events.snapshot.collection.name}")
        //private String snapshotCollectionName;
        
        
        @Autowired
        private MongoProperties mongoProperties;
        
        @Autowired 
        private Environment env;
        
        @Qualifier("eventSerializer")
        @Bean
           public Serializer axonJsonSerializer() {
            return new JacksonSerializer();
        }
        
    
    
        @Bean
        public EventStorageEngine eventStorageEngine(){
            return new MongoEventStorageEngine(
                    axonJsonSerializer() ,null, axonMongoTemplate(), new DocumentPerEventStorageStrategy());
        }
    
        @Bean(name = "axonMongoTemplate")
        public MongoTemplate axonMongoTemplate() {
            return new DefaultMongoTemplate(mongoClient(), mongoDbName);
        }
    
        @Bean
        public MongoClient mongoClient(){
        //    MongoFactory mongoFactory = new MongoFactory();
    //        mongoFactory.setMongoAddresses(Arrays.asList(new ServerAddress(mongoUrl)));
    ////        new MongoClient(new ServerAddress(mongoUrl),new Mongocre,);
    //        return mongoFactory.createMongo();
            
            
    //          public MongoClient(final List<ServerAddress> seeds, final MongoCredential credential, final MongoClientOptions options) {
    //                super(seeds, singletonList(credential), options);
    //            }
            
            //return new MongoClient(Arrays.asList(new ServerAddress(mongoUrl)), MongoCredential.createCredential(mongoUserName, mongoDbName, mongoPass.toCharArray()),MongoClientOptions.builder().build());
            MongoClientFactory mongoClientFactory = new MongoClientFactory(mongoProperties, env);
            return mongoClientFactory.createMongoClient(null);
        }
    
        @Bean
        public SagaStore sagaStore(){
           MongoTemplate mongoTemplate = new DefaultMongoTemplate(mongoClient(),mongoDbName);
            return new MongoSagaStore(mongoTemplate,new JacksonSerializer());
        }
    }
  • 相关阅读:
    GridView 几个受保护的方法的注释
    完全理解 IDisposable 接口的实现
    C++ 函数调用约定和名称修饰
    硬盘格式转换不影响数据_ convert命令FAT32转NTFS
    Win7系统修复_修复光盘的制作与使用
    双网卡共享上网设置
    Windows?XP系统修复方法
    无线路由器与有线路由器的连接(两个路由器连接)
    无线路由器“无线漫游”
    登录路由器没有弹出登录框_路由器无法登录解决办法
  • 原文地址:https://www.cnblogs.com/lshan/p/10862035.html
Copyright © 2020-2023  润新知