1
0
mirror of https://gitee.com/mirrors/Spring-Cloud-Alibaba.git synced 2021-06-26 13:25:11 +08:00

use constructor injection instead of field injection

This commit is contained in:
fangjian0423 2019-01-14 22:43:27 +08:00
parent ec4d2bab9f
commit 230d845419
6 changed files with 17 additions and 16 deletions

View File

@ -30,6 +30,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.cloud.alibaba.sentinel.SentinelProperties; import org.springframework.cloud.alibaba.sentinel.SentinelProperties;
import org.springframework.cloud.alibaba.sentinel.datasource.converter.JsonConverter; import org.springframework.cloud.alibaba.sentinel.datasource.converter.JsonConverter;
import org.springframework.cloud.alibaba.sentinel.datasource.converter.XmlConverter; import org.springframework.cloud.alibaba.sentinel.datasource.converter.XmlConverter;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -161,8 +162,9 @@ public class SentinelAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
@ConditionalOnClass(name = "org.springframework.web.client.RestTemplate") @ConditionalOnClass(name = "org.springframework.web.client.RestTemplate")
public SentinelBeanPostProcessor sentinelBeanPostProcessor() { public SentinelBeanPostProcessor sentinelBeanPostProcessor(
return new SentinelBeanPostProcessor(); ApplicationContext applicationContext) {
return new SentinelBeanPostProcessor(applicationContext);
} }
@Bean @Bean

View File

@ -23,7 +23,6 @@ import java.util.concurrent.ConcurrentHashMap;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.DefaultListableBeanFactory;
@ -55,8 +54,11 @@ public class SentinelBeanPostProcessor implements MergedBeanDefinitionPostProces
private static final Logger logger = LoggerFactory private static final Logger logger = LoggerFactory
.getLogger(SentinelBeanPostProcessor.class); .getLogger(SentinelBeanPostProcessor.class);
@Autowired private final ApplicationContext applicationContext;
private ApplicationContext applicationContext;
public SentinelBeanPostProcessor(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
private ConcurrentHashMap<String, SentinelRestTemplate> cache = new ConcurrentHashMap<>(); private ConcurrentHashMap<String, SentinelRestTemplate> cache = new ConcurrentHashMap<>();

View File

@ -52,7 +52,7 @@ public class SentinelDataSourceHandler implements SmartInitializingSingleton {
private final String CUSTOM_DATA_TYPE = "custom"; private final String CUSTOM_DATA_TYPE = "custom";
private final String CONVERTER_CLASS_FIELD = "converterClass"; private final String CONVERTER_CLASS_FIELD = "converterClass";
private DefaultListableBeanFactory beanFactory; private final DefaultListableBeanFactory beanFactory;
public SentinelDataSourceHandler(DefaultListableBeanFactory beanFactory) { public SentinelDataSourceHandler(DefaultListableBeanFactory beanFactory) {
this.beanFactory = beanFactory; this.beanFactory = beanFactory;

View File

@ -47,7 +47,7 @@ public class SentinelProtectInterceptor implements ClientHttpRequestInterceptor
private static final Logger logger = LoggerFactory private static final Logger logger = LoggerFactory
.getLogger(SentinelProtectInterceptor.class); .getLogger(SentinelProtectInterceptor.class);
private SentinelRestTemplate sentinelRestTemplate; private final SentinelRestTemplate sentinelRestTemplate;
public SentinelProtectInterceptor(SentinelRestTemplate sentinelRestTemplate) { public SentinelProtectInterceptor(SentinelRestTemplate sentinelRestTemplate) {
this.sentinelRestTemplate = sentinelRestTemplate; this.sentinelRestTemplate = sentinelRestTemplate;

View File

@ -19,7 +19,6 @@ package org.springframework.cloud.alibaba.sentinel.endpoint;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.cloud.alibaba.sentinel.SentinelProperties; import org.springframework.cloud.alibaba.sentinel.SentinelProperties;
@ -33,8 +32,6 @@ import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRuleManager;
import com.alibaba.csp.sentinel.slots.system.SystemRuleManager; import com.alibaba.csp.sentinel.slots.system.SystemRuleManager;
import com.alibaba.csp.sentinel.transport.config.TransportConfig; import com.alibaba.csp.sentinel.transport.config.TransportConfig;
import com.fasterxml.jackson.databind.ObjectMapper;
/** /**
* Endpoint for Sentinel, contains ans properties and rules * Endpoint for Sentinel, contains ans properties and rules
* @author xiaojing * @author xiaojing
@ -42,11 +39,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Endpoint(id = "sentinel") @Endpoint(id = "sentinel")
public class SentinelEndpoint { public class SentinelEndpoint {
@Autowired private final SentinelProperties sentinelProperties;
private SentinelProperties sentinelProperties;
@Autowired public SentinelEndpoint(SentinelProperties sentinelProperties) {
private ObjectMapper objectMapper; this.sentinelProperties = sentinelProperties;
}
@ReadOperation @ReadOperation
public Map<String, Object> invoke() { public Map<String, Object> invoke() {

View File

@ -34,8 +34,8 @@ public class SentinelEndpointAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
@ConditionalOnEnabledEndpoint @ConditionalOnEnabledEndpoint
public SentinelEndpoint sentinelEndPoint() { public SentinelEndpoint sentinelEndPoint(SentinelProperties sentinelProperties) {
return new SentinelEndpoint(); return new SentinelEndpoint(sentinelProperties);
} }
} }