From 1eafe43b0a686959d0aacb00a9459f5a83c03074 Mon Sep 17 00:00:00 2001 From: hengyunabc Date: Tue, 3 Nov 2020 15:27:46 +0800 Subject: [PATCH] arthas-spring-boot-starter support appName. #1562 --- .../arthas/spring/ArthasConfiguration.java | 15 ++++++++++++++- .../alibaba/arthas/spring/ArthasProperties.java | 10 ++++++++++ core/src/main/java/arthas.properties | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasConfiguration.java b/arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasConfiguration.java index f1f466ee7..e914a4d36 100644 --- a/arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasConfiguration.java +++ b/arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasConfiguration.java @@ -12,6 +12,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.core.env.ConfigurableEnvironment; import com.taobao.arthas.agent.attach.ArthasAgent; @@ -25,6 +26,9 @@ import com.taobao.arthas.agent.attach.ArthasAgent; public class ArthasConfiguration { private static final Logger logger = LoggerFactory.getLogger(ArthasConfiguration.class); + @Autowired + ConfigurableEnvironment environment; + @ConfigurationProperties(prefix = "arthas") @ConditionalOnMissingBean @Bean @@ -36,7 +40,16 @@ public class ArthasConfiguration { @Bean public ArthasAgent arthasAgent(@Autowired Map arthasConfigMap, @Autowired ArthasProperties arthasProperties) throws Throwable { - arthasConfigMap = StringUtils.removeDashKey(arthasConfigMap); + arthasConfigMap = StringUtils.removeDashKey(arthasConfigMap); + + /** + * @see org.springframework.boot.context.ContextIdApplicationContextInitializer#getApplicationId(ConfigurableEnvironment) + */ + String appName = environment.getProperty("spring.application.name"); + if (arthasConfigMap.get("appName") == null && appName != null) { + arthasConfigMap.put("appName", appName); + } + // 给配置全加上前缀 Map mapWithPrefix = new HashMap(arthasConfigMap.size()); for (Entry entry : arthasConfigMap.entrySet()) { diff --git a/arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasProperties.java b/arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasProperties.java index dd7bd77b9..e1f3c1abc 100644 --- a/arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasProperties.java +++ b/arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasProperties.java @@ -16,6 +16,8 @@ public class ArthasProperties { private String tunnelServer; private String agentId; + private String appName; + /** * report executed command */ @@ -105,4 +107,12 @@ public class ArthasProperties { this.sessionTimeout = sessionTimeout; } + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + } diff --git a/core/src/main/java/arthas.properties b/core/src/main/java/arthas.properties index a33df8167..aab9953fe 100644 --- a/core/src/main/java/arthas.properties +++ b/core/src/main/java/arthas.properties @@ -6,5 +6,6 @@ arthas.ip=127.0.0.1 # seconds arthas.sessionTimeout=1800 +#arthas.appName=demoapp #arthas.tunnelServer=ws://127.0.0.1:7777/ws #arthas.agentId=mmmmmmyiddddd