Signed-off-by: Eric Zhao <sczyh16@gmail.com>master
@@ -81,6 +81,11 @@ | |||
<artifactId>sentinel-extension</artifactId> | |||
<version>${project.version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.alibaba.csp</groupId> | |||
<artifactId>sentinel-annotation-aspectj</artifactId> | |||
<version>${project.version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.alibaba.csp</groupId> | |||
<artifactId>sentinel-datasource-extension</artifactId> | |||
@@ -96,6 +101,11 @@ | |||
<artifactId>sentinel-datasource-zookeeper</artifactId> | |||
<version>${project.version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.alibaba.csp</groupId> | |||
<artifactId>sentinel-transport-simple-http</artifactId> | |||
<version>${project.version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.alibaba.csp</groupId> | |||
<artifactId>sentinel-adapter</artifactId> | |||
@@ -19,6 +19,7 @@ | |||
<module>sentinel-demo-dubbo</module> | |||
<module>sentinel-demo-nacos-datasource</module> | |||
<module>sentinel-demo-zookeeper-datasource</module> | |||
<module>sentinel-demo-annotation-spring-aop</module> | |||
</modules> | |||
<dependencies> | |||
@@ -0,0 +1,43 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<project xmlns="http://maven.apache.org/POM/4.0.0" | |||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |||
<parent> | |||
<artifactId>sentinel-demo</artifactId> | |||
<groupId>com.alibaba.csp</groupId> | |||
<version>0.1.1-SNAPSHOT</version> | |||
</parent> | |||
<modelVersion>4.0.0</modelVersion> | |||
<artifactId>sentinel-demo-annotation-spring-aop</artifactId> | |||
<properties> | |||
<spring.boot.version>2.0.4.RELEASE</spring.boot.version> | |||
</properties> | |||
<dependencies> | |||
<dependency> | |||
<groupId>com.alibaba.csp</groupId> | |||
<artifactId>sentinel-core</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.alibaba.csp</groupId> | |||
<artifactId>sentinel-annotation-aspectj</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.alibaba.csp</groupId> | |||
<artifactId>sentinel-transport-simple-http</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-aop</artifactId> | |||
<version>${spring.boot.version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-web</artifactId> | |||
<version>${spring.boot.version}</version> | |||
</dependency> | |||
</dependencies> | |||
</project> |
@@ -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); | |||
} | |||
} |
@@ -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(); | |||
} | |||
} |
@@ -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()); | |||
} | |||
} |
@@ -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); | |||
} |
@@ -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; | |||
} | |||
} |
@@ -0,0 +1,2 @@ | |||
spring.application.name=sentinel-annotation-aspectj-example | |||
server.port=19966 |