进行自动装配两种方式:
- 使用自定义注解
- 自定义注解 @EnableKnowledge
- 导入真正的配置类
- 引用模块在启动类或者其他spring管理的bean上添加注解@EnableKnowledge
**EnableKnowledge **
@Target({
ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(ElasticSearchConfig.class)
public @interface EnableKnowledge {
}
**ElasticSearchConfig **
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpHost;
import org.codehaus.jackson.map.ObjectMapper;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.*;
import org.springframework.web.client.RestTemplate;
import javax.annotation.PostConstruct;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
@ConditionalOnProperty(value = "spring.elasticsearch.rest.uris")
@Configuration
@ComponentScan(basePackages = {
"com.pactera.sz.knowledge.core"})
@ConfigurationProperties(prefix = "spring.elasticsearch.rest")
@Data
@Slf4j
public class ElasticSearchConfig {
private String[] uris = null;
private String host;
private Integer port;
private String scheme;
private final ObjectMapper objectMapper = new ObjectMapper();
private static volatile RestHighLevelClient client = null;
public ElasticSearchConfig() {
System.out.println("初始化");
}
public RestHighLevelClient restHighLevelClient() {
if (client == null) {
synchronized (ElasticSearchConfig.class) {
if (client == null) {
HttpHost httpHost = new HttpHost(host, port, scheme);
RestClientBuilder builder = RestClient.builder(httpHost);
client = new RestHighLevelClient(builder);
}
}
}
return client;
}
@PostConstruct
public void initPipline(