diff --git a/pom.xml b/pom.xml
index cff702d4..9ce69aa8 100755
--- a/pom.xml
+++ b/pom.xml
@@ -81,6 +81,11 @@
sentinel-extension
${project.version}
+
+ com.alibaba.csp
+ sentinel-annotation-aspectj
+ ${project.version}
+
com.alibaba.csp
sentinel-datasource-extension
@@ -96,6 +101,11 @@
sentinel-datasource-zookeeper
${project.version}
+
+ com.alibaba.csp
+ sentinel-transport-simple-http
+ ${project.version}
+
com.alibaba.csp
sentinel-adapter
diff --git a/sentinel-demo/pom.xml b/sentinel-demo/pom.xml
index d168be48..146331b0 100755
--- a/sentinel-demo/pom.xml
+++ b/sentinel-demo/pom.xml
@@ -19,6 +19,7 @@
sentinel-demo-dubbo
sentinel-demo-nacos-datasource
sentinel-demo-zookeeper-datasource
+ sentinel-demo-annotation-spring-aop
diff --git a/sentinel-demo/sentinel-demo-annotation-spring-aop/pom.xml b/sentinel-demo/sentinel-demo-annotation-spring-aop/pom.xml
new file mode 100644
index 00000000..99c6f5f8
--- /dev/null
+++ b/sentinel-demo/sentinel-demo-annotation-spring-aop/pom.xml
@@ -0,0 +1,43 @@
+
+
+
+ sentinel-demo
+ com.alibaba.csp
+ 0.1.1-SNAPSHOT
+
+ 4.0.0
+
+ sentinel-demo-annotation-spring-aop
+
+
+ 2.0.4.RELEASE
+
+
+
+
+ com.alibaba.csp
+ sentinel-core
+
+
+ com.alibaba.csp
+ sentinel-annotation-aspectj
+
+
+ com.alibaba.csp
+ sentinel-transport-simple-http
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+ ${spring.boot.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${spring.boot.version}
+
+
+
\ No newline at end of file
diff --git a/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/DemoApplication.java b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/DemoApplication.java
new file mode 100644
index 00000000..80df922c
--- /dev/null
+++ b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/DemoApplication.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.csp.sentinel.demo.annotation.aop;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @author Eric Zhao
+ */
+@SpringBootApplication
+public class DemoApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(DemoApplication.class, args);
+ }
+}
diff --git a/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/config/AopConfiguration.java b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/config/AopConfiguration.java
new file mode 100644
index 00000000..d0d82722
--- /dev/null
+++ b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/config/AopConfiguration.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.csp.sentinel.demo.annotation.aop.config;
+
+import com.alibaba.csp.sentinel.annotation.aspectj.SentinelResourceAspect;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author Eric Zhao
+ */
+@Configuration
+public class AopConfiguration {
+
+ @Bean
+ public SentinelResourceAspect sentinelResourceAspect() {
+ return new SentinelResourceAspect();
+ }
+}
diff --git a/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/controller/DemoController.java b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/controller/DemoController.java
new file mode 100644
index 00000000..6288fb81
--- /dev/null
+++ b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/controller/DemoController.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.csp.sentinel.demo.annotation.aop.controller;
+
+import com.alibaba.csp.sentinel.demo.annotation.aop.service.TestService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author Eric Zhao
+ */
+@RestController
+public class DemoController {
+
+ @Autowired
+ private TestService service;
+
+ @GetMapping("/foo")
+ public String foo() throws Exception {
+ service.test();
+ return service.hello(System.currentTimeMillis());
+ }
+}
diff --git a/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/service/TestService.java b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/service/TestService.java
new file mode 100644
index 00000000..c8a2d185
--- /dev/null
+++ b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/service/TestService.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.csp.sentinel.demo.annotation.aop.service;
+
+/**
+ * @author Eric Zhao
+ */
+public interface TestService {
+
+ void test();
+
+ String hello(long s);
+}
diff --git a/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/service/TestServiceImpl.java b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/service/TestServiceImpl.java
new file mode 100644
index 00000000..d7f061a6
--- /dev/null
+++ b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/java/com/alibaba/csp/sentinel/demo/annotation/aop/service/TestServiceImpl.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.csp.sentinel.demo.annotation.aop.service;
+
+import com.alibaba.csp.sentinel.annotation.SentinelResource;
+import com.alibaba.csp.sentinel.slots.block.BlockException;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * @author Eric Zhao
+ */
+@Service
+public class TestServiceImpl implements TestService {
+
+ @Override
+ @SentinelResource("test")
+ public void test() {
+ System.out.println("Test");
+ }
+
+ @Override
+ @SentinelResource(value = "hello", blockHandler = "exceptionHandler")
+ public String hello(long s) {
+ return String.format("Hello at %d", s);
+ }
+
+ public String exceptionHandler(long s, BlockException ex) {
+ // Do some log here.
+ ex.printStackTrace();
+ return "Oops, error occurred at " + s;
+ }
+}
diff --git a/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/resources/application.properties b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/resources/application.properties
new file mode 100644
index 00000000..3522f103
--- /dev/null
+++ b/sentinel-demo/sentinel-demo-annotation-spring-aop/src/main/resources/application.properties
@@ -0,0 +1,2 @@
+spring.application.name=sentinel-annotation-aspectj-example
+server.port=19966
\ No newline at end of file