zoukankan      html  css  js  c++  java
  • 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());
        }
    }
  • 相关阅读:
    java环境变量配置 win7/win8 java配置
    (JSON转换)String与JSONObject、JSONArray、JAVA对象和List 的相互转换
    (yum)更新yum报错:yum makecache: error: argument timer: invalid choice: 'fast' (choose from 'timer')
    (ElasticSearch)中文字符串精确搜索 term 搜不到结果
    (端口)打开阿里云服务组端口和防火墙端口
    (乱码)Spring Boot配置文件出现乱码解决方案
    (特殊字符)url中包含特殊字符导致请求报错的解决方案
    (端口占用)Windows 查看所有端口和PID
    (注释)IDEA快捷键注释不能自动对齐
    (JDK)oracle下载jdk需要注册?
  • 原文地址:https://www.cnblogs.com/lshan/p/10862035.html
Copyright © 2011-2022 走看看