# Arthas Spring Boot Starter

::: tip
只支持 spring boot 2
:::

最新版本：[查看](https://search.maven.org/search?q=arthas-spring-boot-starter)

配置 maven 依赖：

```xml
        <dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-spring-boot-starter</artifactId>
            <version>${arthas.version}</version>
        </dependency>
```

应用启动后，spring 会启动 arthas，并且 attach 自身进程。

::: tip
一键创建包含 Arthas Spring Boot Starter 的工程：<a href="https://start.aliyun.com/bootstrap.html/#!dependencies=arthas" target="_blank">点击</a>
:::

## 配置属性

比如，通过配置 tunnel server 实现远程管理：

```
arthas.agent-id=hsehdfsfghhwertyfad
arthas.tunnel-server=ws://47.75.156.201:7777/ws
```

全部支持的配置项：[参考](https://github.com/alibaba/arthas/blob/master/arthas-spring-boot-starter/src/main/java/com/alibaba/arthas/spring/ArthasProperties.java)

::: tip
默认情况下，arthas-spring-boot-starter 会禁掉`stop`命令。
:::

参考：[Arthas Properties](arthas-properties.md)

## 查看 Endpoint 信息

::: tip
需要配置 spring boot 暴露 endpoint：[参考](https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-endpoints)
:::

假定 endpoint 端口是 8080，则通过下面 url 可以查看：

http://localhost:8080/actuator/arthas

```
{
    "arthasConfigMap": {
        "agent-id": "hsehdfsfghhwertyfad",
        "tunnel-server": "ws://47.75.156.201:7777/ws",
    }
}
```

## 非 spring boot 应用使用方式

非 Spring Boot 应用，可以通过下面的方式来使用：

```xml
        <dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-agent-attach</artifactId>
            <version>${arthas.version}</version>
        </dependency>
        <dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-packaging</artifactId>
            <version>${arthas.version}</version>
        </dependency>
```

```java
import com.taobao.arthas.agent.attach.ArthasAgent;

public class ArthasAttachExample {

	public static void main(String[] args) {
		ArthasAgent.attach();
	}

}
```

也可以配置属性：

```java
        HashMap<String, String> configMap = new HashMap<String, String>();
        configMap.put("arthas.appName", "demo");
        configMap.put("arthas.tunnelServer", "ws://127.0.0.1:7777/ws");
        ArthasAgent.attach(configMap);
```

::: warning
注意配置必须是`驼峰`的，和 spring boot 的`-`风格不一样。spring boot 应用才同时支持`驼峰` 和 `-`风格的配置。
:::
