From a821077e7ae4c203db84a013abf3577bdd30bc45 Mon Sep 17 00:00:00 2001
From: lsy <18332763730@163.com>
Date: Sun, 24 Sep 2017 21:19:11 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0elasticsearch=E5=BF=AB?=
=?UTF-8?q?=E9=80=9F=E5=90=AF=E5=8A=A8=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
boot-starter-elasticsearch/.gitignore | 24 ++++++
boot-starter-elasticsearch/README.md | 9 +++
boot-starter-elasticsearch/pom.xml | 54 +++++++++++++
.../BootStarterElasticsearchApplication.java | 12 +++
.../config/ElasticsearchConfig.java | 80 +++++++++++++++++++
.../elasticsearch/config/package-info.java | 1 +
.../param/ElasticsearchParamConfig.java | 50 ++++++++++++
.../config/param/package-info.java | 1 +
.../src/main/resources/application.yml | 5 ++
...tStarterElasticsearchApplicationTests.java | 16 ++++
cms/pom.xml | 1 +
.../com/micro/fast/cms/CmsApplication.java | 2 +
.../fast/common/config/DataSourceConfig.java | 4 +-
13 files changed, 257 insertions(+), 2 deletions(-)
create mode 100644 boot-starter-elasticsearch/.gitignore
create mode 100644 boot-starter-elasticsearch/README.md
create mode 100644 boot-starter-elasticsearch/pom.xml
create mode 100644 boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/BootStarterElasticsearchApplication.java
create mode 100644 boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/ElasticsearchConfig.java
create mode 100644 boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/package-info.java
create mode 100644 boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/param/ElasticsearchParamConfig.java
create mode 100644 boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/param/package-info.java
create mode 100644 boot-starter-elasticsearch/src/main/resources/application.yml
create mode 100644 boot-starter-elasticsearch/src/test/java/com/micro/fast/elasticsearch/BootStarterElasticsearchApplicationTests.java
diff --git a/boot-starter-elasticsearch/.gitignore b/boot-starter-elasticsearch/.gitignore
new file mode 100644
index 0000000..2af7cef
--- /dev/null
+++ b/boot-starter-elasticsearch/.gitignore
@@ -0,0 +1,24 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+nbproject/private/
+build/
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
\ No newline at end of file
diff --git a/boot-starter-elasticsearch/README.md b/boot-starter-elasticsearch/README.md
new file mode 100644
index 0000000..ff02416
--- /dev/null
+++ b/boot-starter-elasticsearch/README.md
@@ -0,0 +1,9 @@
+# 欢迎查看micro-fast-boot-starter-elasticsearch项目说明
+[](LICENSE)
+## 项目介绍
+ `micro-fast-boot-starter-elasticsearch`项目用于快速开启spring集成elasticsearch的项目,将本项目使用maven发布到本地仓库,在其他项
+ 目中引入该依赖进行相关配置即可使用java操作elasticsearch
+## application.yml文件中的相关配置
+- `elasticsearch.hosts`es节点的ip:port数组(必要参数)
+- `elasticsearch.settings`构建es客户端的Settings实例的key:value数组 例如设置集群名称`cluster.name:lsy`(必要参数)
+
\ No newline at end of file
diff --git a/boot-starter-elasticsearch/pom.xml b/boot-starter-elasticsearch/pom.xml
new file mode 100644
index 0000000..2d6b6ce
--- /dev/null
+++ b/boot-starter-elasticsearch/pom.xml
@@ -0,0 +1,54 @@
+
+
+ 4.0.0
+
+ com.micro.fast
+ micro-fast-boot-starter-elasticsearch
+ 0.0.1-SNAPSHOT
+ jar
+
+ boot-starter-elasticsearch
+ boot starter elasticsearch
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.7.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+ 5.6.0
+
+
+
+
+
+ org.elasticsearch.client
+ transport
+ ${elasticsearch.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
diff --git a/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/BootStarterElasticsearchApplication.java b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/BootStarterElasticsearchApplication.java
new file mode 100644
index 0000000..5058630
--- /dev/null
+++ b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/BootStarterElasticsearchApplication.java
@@ -0,0 +1,12 @@
+package com.micro.fast.elasticsearch;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class BootStarterElasticsearchApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(BootStarterElasticsearchApplication.class, args);
+ }
+}
diff --git a/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/ElasticsearchConfig.java b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/ElasticsearchConfig.java
new file mode 100644
index 0000000..f41ba96
--- /dev/null
+++ b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/ElasticsearchConfig.java
@@ -0,0 +1,80 @@
+package com.micro.fast.elasticsearch.config;
+
+import com.micro.fast.elasticsearch.config.param.ElasticsearchParamConfig;
+import org.elasticsearch.client.transport.TransportClient;
+import org.elasticsearch.common.settings.Settings;
+import org.elasticsearch.common.transport.InetSocketTransportAddress;
+import org.elasticsearch.transport.client.PreBuiltTransportClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+
+/**
+ * 定义elasticsearch客户端的bean
+ * create by lishouyu 2017/09/23
+ * email 18332763730@163.com
+ *
+ * last edit lishouyu 2017/09/24
+ * email 18332763730@163.com
+ */
+@Configuration
+public class ElasticsearchConfig {
+
+ /**
+ * 记录es客户端生成日志
+ */
+ private static final Logger logger = LoggerFactory.getLogger(ElasticsearchParamConfig.class);
+
+ @Autowired
+ private ElasticsearchParamConfig elasticsearchParamConfig;
+
+ /**
+ * 定义es客户端的bean
+ * @return client
+ * @throws UnknownHostException
+ */
+ @Bean("esClient")
+ public TransportClient transportClient() throws UnknownHostException {
+ //1.根据application.yml中的参数来构建es客户端的配置对象
+ Settings.Builder builder = Settings.builder();
+ ArrayList settingsParam = elasticsearchParamConfig.getSettings();
+ if (settingsParam != null && !settingsParam.isEmpty()) {
+ for (String setting:settingsParam) {
+ String[] keyValue = setting.split(":");
+ String key = keyValue[0];
+ String value = keyValue[1];
+ builder.put(key, value);
+ if (logger.isInfoEnabled()) {
+ logger.info("micro-fast elasticsearch 添加elasticsearch的Settings配置: {}:{}", key, value);
+ }
+ }
+ }
+ //2.创建配置对象将配置对象放入es客户端对象之中
+ Settings settings = builder.build();
+ TransportClient client = new PreBuiltTransportClient(settings);
+ //3.根据配置文件创建es节点,然后放入到es客户端对象之中
+ ArrayList hosts = elasticsearchParamConfig.getHosts();
+ if (hosts != null && !hosts.isEmpty()) {
+ for (String host :hosts) {
+ String[] ipPort = host.split(":");
+ String ip = ipPort[0];
+ String port = ipPort[1];
+ InetSocketTransportAddress node = new InetSocketTransportAddress(
+ InetAddress.getByName(ip), Integer.valueOf(port));
+ //向客户端中添加节点
+ client.addTransportAddress(node);
+ if (logger.isInfoEnabled()) {
+ logger.info("micro-fast elasticsearch 添加elasticsearch节点: {}:{}", ip, port);
+ }
+ }
+ }
+ //返回elasticsearch客户端
+ return client;
+ }
+}
diff --git a/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/package-info.java b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/package-info.java
new file mode 100644
index 0000000..7e7327a
--- /dev/null
+++ b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/package-info.java
@@ -0,0 +1 @@
+package com.micro.fast.elasticsearch.config;
\ No newline at end of file
diff --git a/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/param/ElasticsearchParamConfig.java b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/param/ElasticsearchParamConfig.java
new file mode 100644
index 0000000..f4a6990
--- /dev/null
+++ b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/param/ElasticsearchParamConfig.java
@@ -0,0 +1,50 @@
+package com.micro.fast.elasticsearch.config.param;
+
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+
+/**
+ * elasticsearch客户端的配置类
+ * create by lishouyu 2017/09/24
+ * email 18332763730@163.com
+ *
+ * last edit lishouyu 2017/09/24
+ * email 18332763730@163.com
+ */
+@Configuration
+@ConfigurationProperties(prefix = "elasticsearch")
+@AutoConfigureBefore(value = com.micro.fast.elasticsearch.config.ElasticsearchConfig.class)
+@Validated
+public class ElasticsearchParamConfig {
+ /**
+ * elasticsearch集群的ip:port数组,至少要有一个
+ */
+ @NotNull
+ private ArrayList hosts;
+ /**
+ * elasticsearch客户端Settings类的配置参数 key:value数组的形式,至少要有一个
+ */
+ @NotNull
+ private ArrayList settings;
+
+ public ArrayList getHosts() {
+ return hosts;
+ }
+
+ public void setHosts(ArrayList hosts) {
+ this.hosts = hosts;
+ }
+
+ public ArrayList getSettings() {
+ return settings;
+ }
+
+ public void setSettings(ArrayList settings) {
+ this.settings = settings;
+ }
+}
diff --git a/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/param/package-info.java b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/param/package-info.java
new file mode 100644
index 0000000..5cf8fb7
--- /dev/null
+++ b/boot-starter-elasticsearch/src/main/java/com/micro/fast/elasticsearch/config/param/package-info.java
@@ -0,0 +1 @@
+package com.micro.fast.elasticsearch.config.param;
\ No newline at end of file
diff --git a/boot-starter-elasticsearch/src/main/resources/application.yml b/boot-starter-elasticsearch/src/main/resources/application.yml
new file mode 100644
index 0000000..b9eeee4
--- /dev/null
+++ b/boot-starter-elasticsearch/src/main/resources/application.yml
@@ -0,0 +1,5 @@
+elasticsearch:
+ hosts:
+ - localhost:9300
+ settings:
+ - cluster.name:lsy
\ No newline at end of file
diff --git a/boot-starter-elasticsearch/src/test/java/com/micro/fast/elasticsearch/BootStarterElasticsearchApplicationTests.java b/boot-starter-elasticsearch/src/test/java/com/micro/fast/elasticsearch/BootStarterElasticsearchApplicationTests.java
new file mode 100644
index 0000000..498757e
--- /dev/null
+++ b/boot-starter-elasticsearch/src/test/java/com/micro/fast/elasticsearch/BootStarterElasticsearchApplicationTests.java
@@ -0,0 +1,16 @@
+package com.micro.fast.elasticsearch;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class BootStarterElasticsearchApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/cms/pom.xml b/cms/pom.xml
index 8bda977..e2e010f 100644
--- a/cms/pom.xml
+++ b/cms/pom.xml
@@ -82,6 +82,7 @@
+
diff --git a/cms/src/main/java/com/micro/fast/cms/CmsApplication.java b/cms/src/main/java/com/micro/fast/cms/CmsApplication.java
index 76a7452..c7b8456 100644
--- a/cms/src/main/java/com/micro/fast/cms/CmsApplication.java
+++ b/cms/src/main/java/com/micro/fast/cms/CmsApplication.java
@@ -7,6 +7,8 @@ import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
@SpringCloudApplication
@EnableFeignClients
diff --git a/common/src/main/java/com/micro/fast/common/config/DataSourceConfig.java b/common/src/main/java/com/micro/fast/common/config/DataSourceConfig.java
index 2ec182f..f2b322a 100644
--- a/common/src/main/java/com/micro/fast/common/config/DataSourceConfig.java
+++ b/common/src/main/java/com/micro/fast/common/config/DataSourceConfig.java
@@ -56,12 +56,12 @@ public class DataSourceConfig {
//2.设置servlet初始化的参数,如果传入了参数默认的配置就不会生效
Map initParams = new HashMap<>();
ArrayList servletInitParams = druidParamConfig.getServletInitParams();
- if (servletInitParams!=null&&!servletInitParams.isEmpty()){
+ if (servletInitParams != null && !servletInitParams.isEmpty()){
for (String param: servletInitParams) {
String[] keyValue = param.split(":");
initParams.put(keyValue[0],keyValue[1]);
}
- }else{
+ } else {
//设置登录密码
initParams.put("loginUsername","micro");
initParams.put("loginPassword","fast");