हां, निजी तरीकों पर @ ट्रेंसेक्शनल का उपयोग करना संभव है, लेकिन जैसा कि दूसरों ने उल्लेख किया है कि यह बॉक्स से बाहर काम नहीं करेगा। आपको AspectJ का उपयोग करने की आवश्यकता है। मुझे यह पता लगाने में कुछ समय लगा कि मुझे यह कैसे काम करना है। मैं अपने परिणाम साझा करूंगा।
मैंने लोड-टाइम बुनाई के बजाय संकलन-समय बुनाई का उपयोग करना चुना क्योंकि मुझे लगता है कि यह एक समग्र बेहतर विकल्प है। इसके अलावा, मैं जावा 8 का उपयोग कर रहा हूं, इसलिए आपको कुछ मापदंडों को समायोजित करने की आवश्यकता हो सकती है।
सबसे पहले, पहलू के लिए निर्भरता जोड़ें।
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.8</version>
</dependency>
फिर मावेन में वास्तविक बायटेकोड बुनाई करने के लिए एस्पेक्ट जे प्लगइन जोड़ें (यह एक न्यूनतम उदाहरण नहीं हो सकता है)।
<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)
अब आपको निजी तरीकों पर @Transactional का उपयोग करने में सक्षम होना चाहिए।
इस दृष्टिकोण के लिए एक चेतावनी: आपको अपने IDE को AspectJ के बारे में पता होने के लिए कॉन्फ़िगर करने की आवश्यकता होगी अन्यथा यदि आप ऐप को एक्लिप्स के माध्यम से चलाते हैं उदाहरण के लिए यह काम नहीं कर सकता है। सुनिश्चित करें कि आप एक सीधा मावेन निर्माण के खिलाफ एक पवित्रता की जाँच के रूप में परीक्षण करें।