হ্যাঁ, ব্যক্তিগত ব্যক্তিগত পদ্ধতিতে @ ট্রান্সজেকশনালটি ব্যবহার করা সম্ভব, তবে অন্যরা যেমন উল্লেখ করেছেন এটি বাক্সের বাইরে কাজ করবে না। আপনার AspectJ ব্যবহার করা উচিত। এটি কীভাবে কাজ করবে তা নির্ধারণ করতে আমার কিছুটা সময় লেগেছিল। আমি আমার ফলাফল ভাগ করে নেব।
লোড-টাইম ওয়েভিংয়ের পরিবর্তে আমি কমপাইল-টাইম ওয়েভিং ব্যবহার করা বেছে নিয়েছি কারণ আমি মনে করি এটি সামগ্রিক উন্নত বিকল্প। এছাড়াও, আমি জাভা 8 ব্যবহার করছি যাতে আপনার কিছু প্যারামিটারগুলি সামঞ্জস্য করতে হতে পারে।
প্রথমে, প্যাসেজজার্টের জন্য নির্ভরতা যুক্ত করুন।
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.8</version>
</dependency>
তারপরে মাভেনে আসল বাইটকোড বয়ন করতে AspectJ প্লাগইন যুক্ত করুন (এটি কোনও সর্বনিম্ন উদাহরণ নাও হতে পারে)।
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.8</version>
<configuration>
<complianceLevel>1.8</complianceLevel>
<source>1.8</source>
<target>1.8</target>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
অবশেষে এটি আপনার কনফিগার ক্লাসে যুক্ত করুন
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ)
এখন আপনার ব্যক্তিগত পদ্ধতিতে @ লেনদেন ব্যবহার করতে সক্ষম হওয়া উচিত।
এই পদ্ধতির জন্য একটি সতর্কতা: আপনাকে এসপেক্টজে সম্পর্কে সচেতন হওয়ার জন্য আপনার আইডিই কনফিগার করতে হবে অন্যথায় আপনি যদি অ্যাক্লিপসের মাধ্যমে অ্যাপটি চালনা করেন তবে এটি কাজ নাও করতে পারে। নিশ্চিত হয়ে নিন যে আপনি কোনও সরাসরি মাভেন বিল্ডের বিরুদ্ধে স্যানিটি চেক হিসাবে পরীক্ষা করেছেন।