概述
环境:JDK1.8、MAVEN 3.6.1、eclipse
1.添加Hazelcase依赖
Hazelcase是一个分布式数据网格的内存数据存储的项目
当前的
pom
文件:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.22.RELEASE</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- hazelcast的基本配置 -->
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
</dependency>
<!-- hazelcast的spring配置 -->
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-spring</artifactId>
</dependency>
<!-- junit配置 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
2.查看官方文档
spring官方:
如果Hazelcast位于类路径上,Spring Boot将自动配置HazelcastInstance
您可以在应用程序中注入的内容。该HazelcastInstance如果配置被发现时才创建。
你可以定义一个com.hazelcast.config.Config 的bean
,我们将使用它。如果您的配置定义了实例名称,我们将尝试查找现有实例,而不是创建新实例。
您还hazelcast.xml
可以通过配置指定要使用的配置文件:
spring.hazelcast.config = classpath:config / my-hazelcast.xml
否则,SpringBoot会尝试从默认位置(即hazelcast.xml工作目录或类路径的根目录)中查找Hazelcast配置。我们还检查是否hazelcast.config设置了系统属性。查看
Hazelcast文档以获取更多详细信息。
Spring Boot将自动配置HazelcastInstance
3.创建入口类并测试
当前的入口类
Application
内容如下:
/**
* @description 在SpringBoot中使用hazelcase(内存内存计算平台?)
* @author admin
*
*/
@RestController
@SpringBootApplication
public class Application {
@Autowired
HazelcastInstance hazelcastInstance;
/**
* @description 1. 测试springBoot官网上的一句话: 如果Hazelcast位于类路径上,Spring Boot将自动配置HazelcastInstance
*/
@RequestMapping("/testHazelcastInstance")
public String testHazelcastInstance() {
System.out.println(hazelcastInstance);//HazelcastInstance{name='test-hazelcase', node=[192.168.253.1]:5701},
return hazelcastInstance.toString();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
测试:报错
- Field hazelcastInstance in com.hy.springboot.hazelcast.demo.Application required a bean of type
'com.hazelcast.core.HazelcastInstance' that could not be found
. - Bean method ‘hazelcastInstance’ not loaded because ResourceCondition (Hazelcast) did not find resources
'file:./hazelcast.xml'
,'classpath:/hazelcast.xml'
- Bean method ‘hazelcastInstance’ not loaded because @ConditionalOnSingleCandidate (types:
com.hazelcast.config.Config
; SearchStrategy: all) did not find any beans - Bean method ‘hazelcastInstance’ not loaded because ResourceCondition (Hazelcast) did not find resources
'file:./hazelcast.xml'
, ‘classpath:/hazelcast.xml’
发现需要创建com.hazelcast.config.Config或者在classpath的根目录中创建hazelcast.xml
4.创建配置类
当前的
HazelcaseConfig
类的内容:
/**
* @description 当前的Hazelcase的配置类
* @author hy
* @date 2019-08-14
*/
@Configuration
public class HazelcaseConfig {
/**
* @description 3.创建Hazelcase的Config类
*/
@Bean
public Config getConfig() {
Config hazelcaseConfig = new Config();
MapConfig mapConfig = new MapConfig();
mapConfig.setName("myMap");// 设置当前的mapConfig的名称
hazelcaseConfig.setInstanceName("test-hazelcase")// 设置当前创建的实例的名称
.addMapConfig(mapConfig);//添加当前的map
return hazelcaseConfig;
}
}
5.再次测试
结果为HazelcastInstance{name=‘test-hazelcase’, node=[192.168.253.1]:5701};测试创建实例成功!
发现HazelcastInstance的实际类型为:HazelcastInstanceProxy
,查看HazelcastInstanceProxy得知其其具有一系列的获取,List、Set、Map
的方法
6.测试在配置文件中添加的MapConfig
在
Application
类中添加测试内容:
@RequestMapping("/testGetMap")
public String testGetMap() {
IMap<Object, Object> map = hazelcastInstance.getMap("myMap");
return map.toString();//8.测试成功!testGetMap显示IMap{name='myMap'}
//通过查看当前的IMap发现可以像util包中的map一样存储数据,但是IMap更加强大
}
访问后:访问MapConfig成功!
7.创建Controller层来测试当前的IMap,并实现数据的操作
当前的
MapController
中的内容:
/**
* @description 测试通过hazelcast像创建的MapConfig中的map中操作数据
* @author hy
* @date 2019-08-14
*/
@RestController
public class MapController {
@Autowired
HazelcastInstance hazelcastInstance;
/**
* @description 测试添加数据,删除数据,修改数据,查询数据
*/
@RequestMapping("/testAddMap")
public String testAddMap(String key,String value) {
IMap<Object, Object> map = hazelcastInstance.getMap("myMap");
map.put(key, value);
return "【添加key:"+key+".value:"+value+" 成功!】";
}
/**
* @description 测试添加数据,删除数据,修改数据,查询数据
*/
@RequestMapping("/testUpdateMap")
public String testUpdateMap(String key,String value) {
IMap<Object, Object> map = hazelcastInstance.getMap("myMap");
map.put(key, value);
return "【更新key:"+key+".value:"+value+" 成功!】";
}
/**
* @description 测试添加数据,删除数据,修改数据,查询数据
*/
@RequestMapping("/testFindMap")
public String testFindMap(String key) {
IMap<Object, Object> map = hazelcastInstance.getMap("myMap");
Object value = map.get(key);
return "【查询key:"+key+".value:"+value+" 成功!】";
}
/**
* @description 测试添加数据,删除数据,修改数据,查询数据
*/
@RequestMapping("/testDeleteMap")
public String testDeleteMap(String key) {
IMap<Object, Object> map = hazelcastInstance.getMap("myMap");
map.delete(key);
return "【删除key:"+key+" 成功!】";
}
}
8.测试操作IMap
结果:成功!
9.总结
1.Hazelcase中需要创建Config这个类的实例
,并添加XXConfig(例如MapConfig
,需要指定当前的XXConfig名称)
2.通过使用HazelcastInstance这个类的实例来操作配置的XXConfig(MapConfig)
3.Hazelcase中可以添加各种类型的数据,官方说当前Hazelcase的速度要比Redis快
以上纯属个人见解,如有问题请联系本人!
最后
以上就是正直云朵为你收集整理的SpringBoot中简单的使用Hazelcase(内存计算平台)的全部内容,希望文章能够帮你解决SpringBoot中简单的使用Hazelcase(内存计算平台)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复