kotlin-spring-proxy-compatibility

Diagnose Kotlin Spring proxy interception failures for annotated methods.

302|22|Updated Feb 12, 2026
One-click install
npx skills add https://github.com/JetBrains/skills --skill kotlin-spring-proxy-compatibility-jetbrains
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: kotlin-spring-proxy-compatibility
Source: https://github.com/JetBrains/skills/tree/main/kotlin-spring-proxy-compatibility
Command: npx skills add https://github.com/JetBrains/skills --skill kotlin-spring-proxy-compatibility-jetbrains

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Diagnose and prevent Kotlin plus Spring proxy failures around annotation-driven features such as transactional, cacheable, async, and security. Use when AOP annotations appear to do nothing, transactional or cache behavior is inconsistent, compiler plugins may be missing, self-invocation is suspected, or Kotlin final-by-default semantics may break Spring behavior.

Core Features & Use Cases

  • Explain when Spring interception should occur for Kotlin code and identify why it may not.
  • Recommend fixes like enabling the correct Kotlin compiler plugins, adjusting bean boundaries, or changing the proxy strategy.
  • Use case: a Kotlin service calls another bean with an annotated method and proxy interception fails; diagnose and propose a safe fix.

Quick Start

Configure your Kotlin Spring project to ensure the proper compiler plugins and bean boundaries so that Spring intercepts annotated methods reliably.

Frequently Asked Questions about kotlin-spring-proxy-compatibility

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why are Spring transactional annotations not working in my Kotlin project?

Spring proxy interception fails in Kotlin when classes are final by default or required Kotlin Spring compiler plugins are missing. This Skill diagnoses these proxy failures and recommends enabling the correct plugins and restructuring beans to ensure annotated methods are intercepted.

How do I fix Spring AOP self-invocation issues in Kotlin beans?

Fix Spring AOP self-invocation in Kotlin by restructuring bean boundaries so annotated methods are called through a proxied reference rather than internally. This Skill diagnoses self-invocation call paths and proposes safe restructuring to ensure proxy interception functions correctly.

Do I need the Kotlin Spring compiler plugin for AOP proxy interception?

Yes, the Kotlin Spring compiler plugin is required to open Kotlin classes and allow Spring to create proxies for AOP interception. This Skill checks your plugin configurations and identifies when missing compiler plugins cause cacheable, async, or security annotations to fail.

What causes Spring cacheable and async annotations to do nothing in Kotlin?

Spring cacheable and async annotations do nothing in Kotlin when proxy interception fails due to final classes, missing compiler plugins, or interface versus class proxy mismatches. This Skill performs scoped checks on beans and configurations to identify the failure scenario and recommend fixes.

How does Kotlin final-by-default semantics break Spring proxy behavior?

Kotlin final-by-default semantics break Spring proxy behavior by preventing subclass-based proxies from overriding annotated methods for interception. This Skill identifies when final classes block AOP interception and recommends enabling Kotlin Spring compiler plugins to open classes for proxying.

When should I use interface vs class proxies for Spring AOP in Kotlin?

Choose interface proxies when your Kotlin beans implement interfaces, and class proxies when they do not, as mismatched proxy types cause interception failures. This Skill checks your proxy type configuration against your bean structure to ensure correct AOP interception.