更新时间:2025-07-21 GMT+08:00
分享

本地应用注入iDME注解示例

示例场景

对于拥有本地应用的用户,在本地安装数据管理API代理器后,只需要在启动类中注入@ComponentScan(basePackages = {"com.huawei.innovation", "用户自定义的项目包路径"})注解,运行启动类即可。

操作步骤

在启动类上方添加@ComponentScan(basePackages = {"com.huawei.innovation", "com.minibom"})注解,引入iDME的JAR包。其中,“com.huawei.innovation”表示iDME的组件包路径,“com.minibom”表示用户实际项目包路径。
package com.singzai;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.CompinentScan;

@ComponentScan(basePackages = {"com.huawei.innovation", "com.minibom"})
@SpringBootApplication
public class MainApplication{
     public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); }
}

自定义RestTemplate组件,并在@ComponentScan注解指定的包路径下创建一个配置类,如“com.minibom.config.RestTemplateConfiguration”,并注入RestTemplateBuilderRestTemplate两个Bean对象。其示例代码如下:

package com.minibom.config;

import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;

@Configuration
public class RestTemplateConfiguration {

    @Bean
    public RestTemplateBuilder restTemplateBuilder() {
        return new RestTemplateBuilder();
    }

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) throws NoSuchAlgorithmException, KeyManagementException {

        TrustManager[] trustAllCerts = new TrustManager[] {
                new X509TrustManager() {
                    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                        return new X509Certificate[0];
                    }
                    public void checkClientTrusted(
                            java.security.cert.X509Certificate[] certs, String authType) {
                    }
                    public void checkServerTrusted(
                            java.security.cert.X509Certificate[] certs, String authType) {
                    }
                }
        };
        SSLContext sslContext = SSLContext.getInstance("SSL");
        sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLContext(sslContext)
                .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
                .build();
        HttpComponentsClientHttpRequestFactory customRequestFactory = new HttpComponentsClientHttpRequestFactory();
        customRequestFactory.setHttpClient(httpClient);
        return builder.requestFactory(() -> customRequestFactory).build();
    }

}

相关文档