cuốn sách gpt4 ai đã làm

Giám sát hiệu suất thực thi phương thức Spring

In lại Tác giả: Người biết Thời gian cập nhật: 2024-03-11 23:51:11 30 4
mua khóa gpt4 Nike

Hướng dẫn này thảo luận về cách sử dụng khía cạnhJ Khung nguồn mở để giám sát việc thực thi phương thức của các ứng dụng Springhiệu suất.

Theo truyền thống, cách dễ nhất để theo dõi thời lượng của mỗi phương thức Java là thêm một vài dòng theo dõi ở đầu và cuối phương thức:

public void SlowMethod() { long start = System.currentTimeMillis(); class.method(); long time = System.currentTimeMillis() - start;

Nó có thể dễ dàng trở thành cơn ác mộng khi bạn có quá nhiều cách để kiểm tra xem cái nào đang ảnh hưởng đến hiệu suất của bạn.

Công nghệ AspectJ

khía cạnhJ ở JavaAOP công nghệ, vì vậy nó có thể được áp dụng cho hầu hết mọi lớp Java. Khung này có tính năng dệt khía cạnh thực hiện quá trình biên dịch sau mã của bạn thông qua sửa đổi mã byte. Điều này khác với Spring AOP, nơi việc dệt các khía cạnh sẽ được thực hiện bởi vùng chứa khi vùng chứa bắt đầu.

Hãy xem xét một ví dụ thực tế. @AspectJ Hỗ trợ được kích hoạt bằng cách bao gồm các yếu tố sau trong cấu hình mùa xuân của bạn:

cho phép @AspectJ Sau khi được hỗ trợ, bất kỳ Bean nào được xác định trong ngữ cảnh ứng dụng có một lớp có khía cạnh @AspectJ (có chú thích @Aspect) sẽ được Spring tự động phát hiện và được sử dụng để định cấu hình Spring AOP:

gói com.sample; nhập org.aspectj.lang.ProceedingJoinPoint; nhập org.aspectj.lang.annotation.Around; nhập org.aspectj.lang.annotation.Aspect; nhập org.aspectj.lang.annotation.Pointcut; class MyProfiler { @Pointcut("execution(* com.sample.*.*(..))") public void businessMethods() {} @Around("businessMethods()") public Object profile(ProceedingJoinPoint pjp) ném Throwable { long start = System.currentTimeMillis(); getTarget()); Đầu ra đối tượng = pjp.proceed(); System.out.println("Đã hoàn tất thực thi phương thức." + pjp.getTarget()); long elapsedTime = System.currentTimeMillis() - start; System.out.println("Thời gian thực hiện phương thức: " + elapsedTime + " mili giây.");

@Pointcut Tuyên bố có hai phần: một chữ ký bao gồm tên và bất kỳ tham số nào, và một biểu thức pointcut xác định việc thực thi phương thức mà chúng ta đang xử lý. Trong trường hợp của chúng tôi, chúng tôi quan tâm đến việc nắm bắt việc thực thi tất cả các lớp thuộc không gian tên com.sample.*.

Chú thích cuối cùng được bao gồm là @Xung quanh. @Around đề xuất thực hiện "xung quanh" phương thức khớp. Nó có cơ hội hoạt động trước và sau khi một phương thức được thực thi và xác định thời điểm, cách thức hoặc thậm chí liệu phương thức đó có thực sự thực thi hay không.

Đó là tất cả những gì chúng ta cần để theo dõi thời gian của các lớp trong không gian tên com.sample. Bao gồm định nghĩa đậu ở trên trong cấu hình của bạn:

Cuối cùng, thêm các phần phụ thuộc sau để xây dựng ứng dụng của bạn:

  org.springframework spring-core ${spring. phiên bản   org.springframework spring-context ${spring.version    org.springframework spring-aop ${spring.version   org.aspectj aspectjweaver ${aspectj.version  
30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress