世界微资讯!2.x系列教程54--NoSQL之SpringBoot整合
SpringBoot2.x系列教程54--NoSQL之SpringBoot整合ElasticSearch方式一
作者:一一哥
(资料图)
一. Elastic Search
1. Elastic Search简介
ElasticSearch是一个基于Lucene的开源的、分布式实时搜索和分析引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。
Spring Boot为Elasticsearch提供基本的自动配置,我们可以利用Spring Data Elasticsearch在Spring Boot中进行开发。
2. 搭建配置Elastic Search环境
在利用Elastic Search开发之前,请先搭建好Elastic Search环境,我这里配置了ELK环境。关于ELK环境的搭建,感兴趣的朋友可以自行搜索。
3. Spring Boot与Elastic Search版本关系
在新版本的Spring boot2.x中,spring-boot-starter-data-elasticsearch支持的Elasticsearch版本是2.X,但Elasticsearch实际上已经发展到6.5.X版本了,为了更好的使用Elasticsearch的新特性,我们可以弃用spring-boot-starter-data-elasticsearch依赖,改为直接使用Spring-data-elasticsearch,以便启用对新版本支持,目前的版本对应关系如下:
二. Spring Boot2.2.5整合Elastic Search 5.6.8
1. 环境要求
Spring Boot 2.2.5;Elastic Search 5.6.8;Kibana 5.6.8;Maven
2. 创建web项目
我们按照之前的经验,创建一个web程序,并将之改造成Spring Boot项目,具体过程略。
3. 添加依赖包
org.springframework.bootspring-boot-starter-data-elasticsearch
注意:因为我的elastic search 并不是6.5.x以上的最新版本,而是5.6.8版本,所以我这里使用的还是spring-boot-starter-data-elasticsearch的依赖包。
4. 创建application.yml配置文件
# Elasticsearch# 9200作为Http协议,主要用于外部通讯,而9300作为Tcp协议,是传输层监听的默认端口,jar之间就是通过tcp协议通讯elasticsearch: #注意cluster.name需要与config/elasticsearch.yml中的cluster.name一致 # Elasticsearch cluster name. cluster: name: elasticsearch # Comma-separated list of cluster node addresses. ip: localhost port: 9300 pool: 5
elastic search默认的端口号是9300。
5. 创建ElasticSearchConfig配置类
package com.yyg.boot.config;import lombok.extern.slf4j.Slf4j;import org.elasticsearch.client.Client;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.TransportAddress;import org.elasticsearch.transport.client.PreBuiltTransportClient;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.elasticsearch.core.ElasticsearchOperations;import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;import java.net.InetAddress;/** * @Author 一一哥Sun * @Date Created in 2020/4/13 * @Description Description */@Slf4j@Configurationpublic class ElasticSearchConfig { @Value("${elasticsearch.ip}") private String hostName; @Value("${elasticsearch.port}") private String port; @Value("${elasticsearch.cluster.name}") private String clusterName; @Value("${elasticsearch.pool}") private String poolSize; /** * 构建TransportClient对象 */ @Bean(name = "transportClient") public TransportClient transportClient() { log.info("Elasticsearch初始化开始。。。。。"); TransportClient transportClient = null; try { // 配置信息 Settings esSetting = Settings.builder() //集群名字 .put("cluster.name", clusterName) //增加嗅探机制,找到ES集群 .put("client.transport.sniff", true) //增加线程池个数,暂时设为5 .put("thread_pool.search.size", Integer.parseInt(poolSize)) .build(); //配置信息Settings自定义 transportClient = new PreBuiltTransportClient(esSetting); TransportAddress transportAddress = new TransportAddress(InetAddress.getByName(hostName), Integer.valueOf(port)); transportClient.addTransportAddresses(transportAddress); } catch (Exception e) { log.error("elasticsearch TransportClient create error!!", e); } return transportClient; } /** * 构建ElasticsearchTemplate对象 */ @Bean public ElasticsearchOperations elasticsearchTemplate() { Client client = transportClient(); if (client != null) { return new ElasticsearchTemplate(client); } else { //弹出异常对象 throw new RuntimeException("初始化Elasticsearch失败!"); } }}
6. 创建增删改查接口
我这里直接使用TransportClient进行增删改查,后面的章节中,我会讲解简化方案。
package com.yyg.boot.web;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.action.search.SearchRequestBuilder;import org.elasticsearch.action.search.SearchResponse;import org.elasticsearch.action.search.SearchType;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.xcontent.XContentBuilder;import org.elasticsearch.common.xcontent.XContentFactory;import org.elasticsearch.index.query.BoolQueryBuilder;import org.elasticsearch.index.query.QueryBuilders;import org.elasticsearch.index.query.RangeQueryBuilder;import org.elasticsearch.search.SearchHit;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.*;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Map;/** * @Author 一一哥Sun * @Date Created in 2020/4/13 * @Description Description */@RestController@RequestMapping("/book")public class BookController { @Autowired private TransportClient transportClient; /** * 添加博客索引信息 */ @PostMapping("/add") public ResponseEntity add( @RequestParam(name = "title") String title, @RequestParam(name = "author") String author, @RequestParam(name = "word_count") int wordCount, @RequestParam(name = "publish_date") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date publishDate ) { try { XContentBuilder content = XContentFactory.jsonBuilder() .startObject() .field("title", title) .field("author", author) .field("word_count", wordCount) .field("publish_date", publishDate.getTime()) .endObject(); IndexResponse result = this.transportClient.prepareIndex("blogs", "blog").setSource(content).get(); return new ResponseEntity(result.getId(), HttpStatus.OK); } catch (Exception e) { e.printStackTrace(); ; return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); } } /** * 根据id查询 */ @GetMapping("/get") public ResponseEntity get(@RequestParam(name = "id", defaultValue = "") String id) { if (id.isEmpty()) { return new ResponseEntity((HttpStatus.NOT_FOUND)); } GetResponse result = transportClient.prepareGet("blogs", "blog", id).get(); if (!result.isExists()) { return new ResponseEntity((HttpStatus.NOT_FOUND)); } return new ResponseEntity(result.getSource(), HttpStatus.OK); } /** * 按条件查询 */ @GetMapping("/query") public ResponseEntity query( @RequestParam(name = "author", required = false) String author, @RequestParam(name = "title", required = false) String title, @RequestParam(name = "gt_word_count", defaultValue = "0") int gtWordCount, @RequestParam(name = "lt_word_count", required = false) Integer ltWordCount ) { //设置查询条件 BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); if (author != null) { boolQuery.must(QueryBuilders.matchQuery("author", author)); } if (title != null) { boolQuery.must(QueryBuilders.matchQuery("title", title)); } //按范围查询 RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("word_count").from(gtWordCount); if (ltWordCount != null && ltWordCount > 0) { rangeQuery.to(ltWordCount); } boolQuery.filter(rangeQuery); SearchRequestBuilder builder = this.transportClient.prepareSearch("blogs") .setTypes("blog") .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(boolQuery) //设置分页查询 .setFrom(0) .setSize(10); System.out.println(builder); SearchResponse response = builder.get(); Listresult = new ArrayList<>(); for (SearchHit hit : response.getHits()) { result.add(hit.getSourceAsMap()); } return new ResponseEntity(result, HttpStatus.OK); }}
7. 创建Application入口类
package com.yyg.boot;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * @Author 一一哥Sun * @Date Created in 2020/4/9 * @Description Description */@SpringBootApplicationpublic class ElasticApplication { public static void main(String[] args) { SpringApplication.run(ElasticApplication.class, args); }}
完整项目结构:
8. 启动elastic search和kibana环境
elastic search正常启动后效果
kibana正常启动后效果
9. 在postman中进行测试
测试添加博客功能
可以看到最后返回了新增的博客id。
在kibana中进行索引的查看
在我们前面的代码中,我们已经创建了index索引为blogs,所以我们可以在kibana中把这个blogs索引同步过来。
到这一步,我们就把代码中创建好的blogs索引同步过来了,接下来我们可以查看blogs索引中的内容。
发现blogs索引中已经有了我们之前添加的博客内容。
测试按id查询博客接口
测试查询全部结果的接口

标签:
相关推荐:
精彩放送:
- []TinySH备份工具安装教程及操作步骤
- []当前播报:如何在微信小程序上开发一个蚂蚁森林和蚂蚁庄园结合体?开发方法步骤
- []100幅出名的视觉欺骗图片 你从图中看到了什么?
- []渲染农场——分布式并行集群计算系统
- []对话华住联席COO沈怡均:未来3-4年,全季酒店要做到3000家
- []驾驶员清醒和疲劳状态时 如何提取脑电信号特征?
- []C语言输出a大于100,C语言:ALGOL代码实现“水仙花数”
- []天天动态:OpenCV学习笔记 再谈OpenCV数据结构Mat详解
- []环球微资讯!oracle行转列是什么?动态行转不定列
- []简讯:外汇交易提醒:元旦假期结束,美元兑日元剧烈震荡迎接超级周
- []世界新资讯:张贤胜和泫雅恋爱过吗?到底是不是情侣关系?
- []【世界聚看点】有功功率和无功功率的区别是什么?交流有功功率、无功功率、视在功率计算
- []每日快看:一公斤黄金多少钱?一公斤黄金合多少人民币?
- []【环球报资讯】华为matebook和荣耀magicbook区别是什么?两者的区别介绍
- []Win8如何开启802.1x网络认证?开启802.1x网络认证方法
- []当前通讯!无锡火车站你知道多少?无锡火车站详情介绍
- []全球速讯:不同类型的网页设计有哪些风格?网页设计简单介绍
- []世界新动态:SQL Server developer和enterprise有什么区别?各个版本的定义
- []网盘哪个好?网盘性能推荐
- []天天亮点!数据透视表是什么?excel中数据透视表的基本概念
- []全球观热点:改装房车违法吗怎么处罚?改装房车违法吗?
- []编辑好正文和引用内容的文本如何添加?
- []什么是Config?Config的详情介绍
- []世界快看:veet脱毛膏使用前需要水吗?veet脱毛膏怎么用?
- []office怎么卸载?office卸载步骤
- []当前快报:安卓手机如何设置便携式WLAN热点?设置教程
- []当前聚焦:crt是什么意思?CRT与WINDOWS的关系
- []全球最新:贵州电视台养生节目帮助睡眠 贵州电视台养生节目是什么?
- []今日讯!金山打字通有哪些好玩的游戏?金山打字通生死时速游戏介绍
- []【新视野】百度进军日本市场 已成日本第四大独立搜索引擎
- []讯息:洗白色鞋子有什么妙招?洗白色鞋子小妙招
- []全球实时:麦肯锡发布2021中国消费者报告:全球增长新引擎
- []当前简讯:未能连接驱动人生服务器怎么办?驱动人生5wifi共享失败解决方法
- []有没有MAC的WPS?金山公司明年将有全平台的WPS
- []天天快消息!四个圈是什么车?奥迪车标的来历
- []win10系统显示不了桌面怎么回事?解决步骤如下
- []全球短讯!1000米长跑技巧有哪些?1000米的长跑技巧
- []环球快报:华为g9怎么样?华为g9参数配置评测
- []世界快看:cf防沉迷验证是什么?cf防沉迷身份证
- []全球聚焦:如何在mac系统中使用苹果的键盘?移动文件的快捷键是什么?
- []世界观天下!手机卡怎么剪成最小?手机卡裁剪技巧
- []推荐12本好看的高干文 每本都值得看三次
- []观焦点:文字处理软件word2003 完整视频教程系列(一)
- []dr.dre耳机怎么样?dr.dre耳机简介及价格
- []微信聊天记录怎么导出?教你两种方法
- []世界视讯!柠檬片泡水有什么副作用?柠檬片泡水的功效和副作用
- []qq邮箱163登不了怎么办?qq邮箱163登录方法
- []【聚看点】串口服务器协议 TCPserver--TCPclient模式设置方法
- []当前要闻:卖垃圾袋的“财迷”小子 37亿美元身家跻身前400强
- []环球百事通!d link路由器怎么设置ip段?d link路由器设置方法
- []最资讯丨萧景鸿的前女友是谁?萧景鸿的前女友叫什么名字?
- []全球关注:如何玩转Lua内存回收?Lua的内存监测和回收
- []动态:如何快速查询顺心捷达物流?查询方法步骤
- []每日热议!什么是沙盒游戏?沙盒类游戏哪十大排行?
- []快看:自动驾驶之路面缺陷检测 路面缺陷检测算法
- []世界看热讯:secure是什么意思?secure的用法
- []全球看热讯:重返末日剧场怎么飞上房顶?cf末日剧场介绍
- []今日讯!excel/word如何快速输入当前的时间和日期?输入方法技巧
- []消息!实施运维企业面试题有哪些?实施运维企业面试题及答案
- []typec数据线是什么?Type-C数据线有哪些优势?
- []天天头条:win7电脑怎么修改ip地址?win7电脑修改ip地址修改方法
- []利勃海尔冰箱怎么样?利勃海尔冰箱有哪些优势?
- []苹果care是什么意思?苹果care的含义
- []世界即时看!荣耀MagicBook14用什么处理器?MagicBook14处理器介绍
- []【当前独家】适合教师节的歌曲简谱有哪些?适合教师节的歌曲
- []天天快资讯:java-version升级的JDK 到底是怎么回事?
- []环球微资讯!Trinity是什么?AMDTrinityAPU最新发布
- []每日关注!北陈南萧接下来是什么朝代?北陈南萧是哪个朝代?
- []当前热讯:网上阅卷系统是什么?网上阅卷系统简要概述
- []世界聚焦:n95手机怎么样?n95手机详细测评
- []浙江富浙资本管理挂牌赞成集团12.8%股权 底价9902.43万元
- []全球微资讯!美的置业2022年录得合同销售金额792.4亿元 已售销售面积631.6万平
- []1月3日财经早餐:美元在新年伊始上涨,但市场情绪疲软
- []热头条丨大家千万不要领失业金补助,失业金可以领
- []为什么建议不要失业补助金,有以下三点原因
- []保险交了6年不想交了能退吗 交了6年不想交了保险能退吗
- []世界播报:医保卡超过3000元就可以取现,是否可以取现在于当地政策
- []世界焦点!公积金如何计算,公积金封存的意思
- []世界观点:国美零售公布债转股方案 控股股东黄光裕持股比例将降至19.33%
- []环球最资讯丨京东物流授出523.86万股奖励股份 占总股本0.08%
- []鱼跃医疗:公司若有相关计划会及时履行相应的审议程序及信息披露义务
- []热消息:中百集团关闭武汉、荆州等地5家大卖场 预计产生损失2500万元
- []全球热议:际华集团:拟转让子公司陕西际华园 交易总金额不超过8.3亿元
- []天天微速讯:由于规划原因 黑牡丹常州“两馆两中心”PPP项目提前终止
- []中铁装配全资子公司收到桂林住宅项目中标通知书 中标金额约2亿元
- []世界实时:际华集团:终止“际华园西安项目”并将结余资金永久补充流动资金
- []今日热门!华脉泰科冲刺科创板上市:持续亏损,实控人周坚曾是神经科医生
- []【全球快播报】广州将发放三轮共计2000万元消费券 涉1700多家文旅企业商家
- []热点在线丨终于,全国开始抢救二手房了?
- []1月1日起 河南省全面实施“交房即交证”
- []携程:元旦假期近六成用户跨省游 跨境机票预订量同比增长145%
- []视讯!绍兴:继续推进房屋拆改 房票使用范围扩大至二手房
- []天天新消息丨香港公布1至3月卖地计划 连同私人重建项目提供3120伙单位
- []头条:长春:“三孩家庭”公积金贷款额度可提高20万元
- []【时快讯】上海徐家汇中心T2塔楼核心筒封顶 预计2024年竣工交付
- []北京:租住保障性租赁房的家庭可以申请提取住房公积金
- []【独家焦点】*ST宜康:获实控人捐赠颂阳实业100%股权 拓展在医疗设备领域业务
- []今日热文:存量房贷利率“降息”,快来算算你月供能省多少
- []【新要闻】赛分科技冲刺科创板上市:拟募资8亿元,复星、高瓴为股东
- []环球报道:2023年房地产行业怎么走?王惠敏、丁祖昱等给出预测
- 热点追踪 | 小心投资中的空中楼阁
- 碧水源:公司不知道股东的相关计划,公司如有达到披露标准的事项将会及时公告
- 宁德时代申请冻结广汽菲克财产
- 世界观热点:177亿!锂电巨头大项目黄了?
- 简讯:200MW/400MWh!国电投宁夏盐池共享储能电站设备招标!
- 去哪儿:元旦成为疫情恢复后首个长线游高峰 三成用户选择连住3天以上
- 焦点速讯:100亿级锂电池材料项目投产!
- 环球热讯:同程旅行盘点2023元旦出行数据,机票酒店“量价齐升”
- 热门看点:52亿!卓能新能源10GWh新型动力电池及储能系统项目开工
- 天天日报丨飞猪:元旦跨省跨市游订单占比近8成,上海、成都、北京、三亚走热
- 支持“新能源+储能”一体化模式开发
- 世界新动态:马蜂窝元旦旅游数据报告:“长途游”复苏明显,41%的游客选择自驾出行
- 焦点速讯:公积金网上基数调整流程,有以下四步
- 世界最资讯丨赛目科技冲刺港交所上市:毛利率持续走低,胡大林为董事长
- 全球最新:新华保险交20年能拿回本金吗,分以下三种情况
- 天天即时看!税优健康险有哪几家公司有,买保险需要注意什么
- 【报资讯】网上提取住房公积金流程,有以下四步
- 交强险2000赔付流程,有以下四步
- 热点评!养老账户余额有什么用 养老保险余额可以干什么
- 环球关注:传世经典-『老铺黄金』经典巡展 北京SKP首展启幕
- 当前观察:全国最强区,大跌700万!
- 2023年救市,又有新玩法了!
- 全球最资讯丨2022年中国房地产企业新增货值TOP100排行榜
- 天天播报:关于2023年,楼市的6大预判
- 天天热资讯!从一房难求到降价甩卖,美国楼市“寒潮”来临?
- 环球要闻:北京:1月1日起,租住保障性租赁房可提取公积金
- 环球快播:我爱我家谢勇新年致辞:实行稳健发展战略,推动数字化升级
- 热问|共同购买的房屋被男友擅自出售该咋办?
- 潍柴动力:如有应披露事项,公司将根据监管要求及时予以披露
- 世界讯息:绿城新年致辞:去年交付面积超1千万平米,今年优化各项经营指标
- 84.7亿!河北邢台抽水蓄能电站项目开工
- 每日快播:6MW/36MWh!业内最大全钒液流电池用户侧储能电站并网
- 焦点热讯:80亿元!甘肃岷县禾驮抽水蓄能电站项目成功签约
- 天天快消息!官方解读 | 《江西电力调频辅助服务市场运营规则》发布
- 10MW/20MWh!浙江海宁首个大型独立储能电站一期投运
- 全球观天下!信息量巨大!西藏电力辅助服务与并网运行管理实施细则印发!
- 世界资讯:能环宝一周能源说:我国最大超深油田年产油气突破300万吨
- 全球速读:又一家光伏公司启动A股IPO辅导
- 公积金基数可以随意调整吗 不可以
- 公积金线下怎么提取 简单三步轻松提取
- 公积金双边是什么意思 公积金汇缴总金额
- 环球今日报丨你好,2023!观点新媒体祝您元旦快乐
- 每日关注!公积金对冲和不对冲的区别 公积金对冲还贷办理方法
- 世界热消息:企业年金可以一次性取出来吗 可以
- 【环球速看料】调整限购区域、认贷不认房……郑州出台楼市“12条”
- 今日热文:华彬集团喜忧参半:红牛商标诉讼扳回一局,2022年业绩战报下滑
- 全球快消息!2022“非典型名城”盘点——那些你想去,却还没出发的城市
- 全球通讯!2022年千亿房企仅20家,易居CEO丁祖昱:明年上半年压力依然会很大
- 焦点热门:房企“排头兵”宣布一个重磅消息
- 【环球新要闻】现在深圳二手房的挂牌量,吓了我一跳
- 当前动态:跌回6年前!这类小区,正在疯狂被践踏!
- 当前快讯:忍住没卖房的,要赢麻了?
- 【世界报资讯】百强房企拿地金额近“腰斩”,谁逆势大幅扩储?
- 环球滚动:对话孙坚:以酒店为圆心,构建酒店+本地生活新生态
- 天天热讯:万里马:公司目前未获得相关订单
- 信息:保利发展发布125亿元定增预案 投向14个项目
- 祥明智能:公司的医疗健康领域有用于医疗器械的业务,随着疫情感染增加,相关风机的订单需求也在增加
- 今日要闻!滨江董事长戚金兴:明年销售目标占全国总额的1%
- 今日观点!北上资金2022全年累计净买入900亿元,这些行业被大幅加仓
- 天天百事通!京粮控股:餐饮行业复苏有利于公司产品销售
- 环球热议:热问丨新买二手房上有他人户口,应如何处理?
- 天天要闻:宏创控股:截止2022年12月30日股东人数为33,749
- 天天实时:房企年底迎交付大考 时代中国狠抓品质
- 今日热搜:河钢资源:公司2020年和2021年的营业收入均为扣除海运费及相关保险费用后的净额
- 重点城市打前阵 购房政策将继续优化
- 当代置业:重组生效日期条件已达成,撤销2023年4月票据上市
- 天天资讯:禾元生物冲刺科创板上市:累计亏损超4亿元,贝达药业为主要股东
- 世界快报:越秀服务拟展开股票期权激励计划 首次授予重要高管和核心员工
- 今亮点!未来十年,酒店加盟看“特许经营”?
- 世界时讯:赛道火热!国家电投2022年储能全动态
- 储能火热!73家企业入局、锂电池产业链“大扩产”
- 上海峰谷电价差最大1.88元/kWh!2023年1月电网代理购电价格公布!
- 电网侧新型储能发展需求分析
- 山东:6家独立储能电站参与现货电能量市场交易,总装机50.3万千瓦
- 环球精选!2022年土拍年末翘尾,房企利润空间充足,安置房回购项目反倒受追捧?
- 全球热门:证监会出手!点名两家互联网券商“无证驾驶”;富途、老虎美股大跌,被禁止招揽境内投资者和开立新账户
- 天天消息!10GWh储能项目!这家企业豪掷20亿元投资储能!
- 创业板"三创四新"迎来修订!守好创业板定位,新增明确研发指标,加码压实中介机构责任
- 天天热消息:渤海亿吨级油田垦利6-1主体区开发项目投产
- 世界聚焦:重回1.5元/W!组件价格也暴跌了吗?
- 焦点日报:我国首个氢能产品全链条公共检测服务平台正式对外开放
- 燃料油供应进一步收紧 期货盘面继续反弹
- 世界热推荐:中科院报告显示:我国生态环境建设取得巨大成效
- 如何申请公积金贷款买车 怎样申请用公积金买车
- 全球新资讯:保利发展计划非公开发行不超过8.19亿股 募集资金125亿元
- 当前滚动:当代置业:债务重组条件均已达成 已完成发行多个新票据
- 焦点热门:交强险过期怎么办 交强险过期如何处理
- 北京第五批集中供地上线,6宗宅地起始价超122亿元
- 百事通!大额医疗费用补助是什么意思 什么是大额医疗费用补助
- 公积金存缴基数,依据职工月均工资确定
- 合肥公积金怎么提取出来 如何提取合肥公积金
- 天天热消息:国美零售再获黄光裕1.3亿港元免息贷款 月内已注资6.3亿港元
- 成都放宽购房条件 父母投靠成年子女可购买一套住房
- 环球视讯!* 磷酸铁锂价格月跌幅2.35%,天赐材料跌近5%
- 世界今亮点!柴强:“稳租金”至关重要,让租赁企业发展更可持续
- 【天天播资讯】正荣地产今年交付4万余套房屋
- 越秀服务采纳一份股票期权计划 授出共1522万份股票期权
- 环球热点!华润三九也要“追光”?与华润新能源一起拿下中医药、新能源发电项目
- 【环球新要闻】雅居乐完成配售2.685亿股股份,募资净额6.17亿港元
- 大唐集团出售厦门商管公司80%股权予合营方广西吉顺隆 代价2.52亿