• spring retry注解


    <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">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com</groupId>
      <artifactId>test</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <name>test</name>
      <url>http://maven.apache.org</url>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
    
    <parent>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-parent</artifactId>  
            <version>1.5.9.RELEASE</version>  
            <relativePath/> 
      </parent>  
        
        
      <dependencies>
         <dependency>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-starter-web</artifactId>  
         </dependency>  
           
        <dependency>
        <groupId>org.springframework.retry</groupId>
        <artifactId>spring-retry</artifactId>
    </dependency>
    
    <dependency>
              <groupId>org.aspectj</groupId>
              <artifactId>aspectjweaver</artifactId>
         </dependency>
     </dependencies>
      
       <!-- Package as an executable jar -->  
        <build>  
            <plugins>  
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <source>1.8</source>
              <target>1.8</target>
            </configuration>
          </plugin>
                <plugin>  
                    <groupId>org.springframework.boot</groupId>  
                    <artifactId>spring-boot-maven-plugin</artifactId>  
                </plugin>  
            </plugins>  
        </build>  
      
    </project>
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.retry.annotation.EnableRetry;
    
    @SpringBootApplication
    @EnableRetry
    public class Application {
    
    
      public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
      }
    }
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    
    @RestController
    public class TestController {
    
      @Autowired
      private RemoteService remoteService;
    
      @RequestMapping("/show")
      public String show() {
        try {
          remoteService.call();
        } catch (Exception e) {
          // TODO Auto-generated catch block
          System.out.println("Exception Occur" + e.getMessage());
        }
        return "Hello World";
        }
    }
    import org.springframework.retry.annotation.Backoff;
    import org.springframework.retry.annotation.Recover;
    import org.springframework.retry.annotation.Retryable;
    import org.springframework.stereotype.Service;
    
    @Service
    public class RemoteService {
    
      private final int MAXATTEMPTS = 2;
      private final long DELAY = 1000L;
    
      @Retryable(value = {NullPointerException.class, ArithmeticException.class},
          maxAttempts = MAXATTEMPTS, backoff = @Backoff(delay = DELAY, multiplier = 1))
      public void call() throws Exception {
        System.out.println("do something...");
        int a = 5 / 0;
        String.valueOf(null);
        // throw new NullPointerException("RPC调用异常");
      }
    
      @Recover
      public void recover(Exception e) {
        e.printStackTrace();
      }
    }
  • 相关阅读:
    净化-湿式除尘器:湿式除尘器
    净化-袋式除尘器:袋式除尘器
    LOCK
    locale
    loadkeys
    LOAD
    ln -在文件之间建立连接
    lmhosts
    listen
    listalias
  • 原文地址:https://www.cnblogs.com/tonggc1668/p/8385493.html
Copyright © 2020-2023  润新知