package com.bahadirakin.hazelcast; import com.bahadirakin.hazelcast.domain.User; import com.hazelcast.config.*; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.IMap; import com.hazelcast.core.MapStore; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class SpringHazelcastApplication { public static void main(String[] args) { SpringApplication.run(SpringHazelcastApplication.class, args); } @Bean @Autowired public HazelcastInstance getHazelcastInstance(MapStore<String, User> userMapStore) { final Config config = new Config(); final NetworkConfig networkConfig = new NetworkConfig(); networkConfig.setPort(5701); networkConfig.setPortAutoIncrement(true); config.setNetworkConfig(networkConfig); final JoinConfig joinConfig = new JoinConfig(); networkConfig.setJoin(joinConfig); final MulticastConfig multicastConfig = new MulticastConfig(); multicastConfig.setEnabled(false); joinConfig.setMulticastConfig(multicastConfig); final TcpIpConfig tcpIpConfig = new TcpIpConfig(); tcpIpConfig.setEnabled(false); joinConfig.setTcpIpConfig(tcpIpConfig); final AwsConfig awsConfig = new AwsConfig(); awsConfig.setEnabled(false); joinConfig.setAwsConfig(awsConfig); final SSLConfig sslConfig = new SSLConfig(); sslConfig.setEnabled(false); networkConfig.setSSLConfig(sslConfig); final MapConfig mapConfig = new MapConfig(); mapConfig.setName("userMap"); final MapStoreConfig mapStoreConfig = new MapStoreConfig(); mapStoreConfig.setEnabled(true); mapStoreConfig.setWriteDelaySeconds(60); mapStoreConfig.setInitialLoadMode(MapStoreConfig.InitialLoadMode.LAZY); mapStoreConfig.setImplementation(userMapStore); mapConfig.setMapStoreConfig(mapStoreConfig); config.addMapConfig(mapConfig); return Hazelcast.newHazelcastInstance(config); } }