本地应用注入iDME注解示例
示例场景
对于拥有本地应用的用户,在本地安装数据管理API代理器后,只需要在启动类中注入@ComponentScan(basePackages = {"com.huawei.innovation", "用户自定义的项目包路径"})注解,运行启动类即可。
操作步骤
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”,并注入RestTemplateBuilder和RestTemplate两个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(); } }