Java SpringAOP加载时编织是否需要JVM参数?

Java SpringAOP加载时编织是否需要JVM参数?,java,spring,jvm,aop,aspectj,Java,Spring,Jvm,Aop,Aspectj,对于使用SpringAOP的独立Java应用程序,是否需要使用JVM参数,例如-javaagent:pathto/aspectjweaver.jar来“打开”AOP支持?您希望或需要在何时这样做 很清楚,“standalone”是指一个Maven构建的、可执行的.jar;这将在各种平台上调用。通常,只在类路径中包含weaver jar就足够了。通常,只在类路径中包含weaver jar就足够了。查看更多文档。视情况而定 在这里查看更多文档。视情况而定 视情况而定。如果您使用SpringAOP只进

对于使用SpringAOP的独立Java应用程序,是否需要使用JVM参数,例如
-javaagent:pathto/aspectjweaver.jar
来“打开”AOP支持?您希望或需要在何时这样做


很清楚,“standalone”是指一个Maven构建的、可执行的.jar;这将在各种平台上调用。

通常,只在类路径中包含weaver jar就足够了。

通常,只在类路径中包含weaver jar就足够了。

查看更多文档。视情况而定

在这里查看更多文档。视情况而定

视情况而定。如果您使用SpringAOP只进行粗粒度的拦截(意味着您只想拦截对bean的外部调用,而不想拦截bean内部的调用),那么您根本不需要JVM参数。只需使用如下代码:

<bean id="myInterceptor" class="com.company.interceptors.MyInterceptor"></bean>

<aop:config>
    <aop:pointcut id="myPointcut"
        expression="execution(* com.company.services..MyService.*(..))" />

    <aop:advisor pointcut-ref="myPointcut"
        advice-ref="myInterceptor" />
</aop:config>


这要看情况而定。如果您使用SpringAOP只进行粗粒度的拦截(意味着您只想拦截对bean的外部调用,而不想拦截bean内部的调用),那么您根本不需要JVM参数。只需使用如下代码:

<bean id="myInterceptor" class="com.company.interceptors.MyInterceptor"></bean>

<aop:config>
    <aop:pointcut id="myPointcut"
        expression="execution(* com.company.services..MyService.*(..))" />

    <aop:advisor pointcut-ref="myPointcut"
        advice-ref="myInterceptor" />
</aop:config>


考虑通过maven使用编译时编织:

<properties>
    <aspectj.version>1.6.12</aspectj.version>
</properties>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.4</version>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjtools</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <complianceLevel>1.7</complianceLevel>
                <aspectLibraries>
                    <aspectLibrary>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-aspects</artifactId>
                    </aspectLibrary>
                </aspectLibraries>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

1.6.12
org.codehaus.mojo
aspectj maven插件
1.4
org.aspectj
aspectjtools
${aspectj.version}
1.7
1.7
1.7
org.springframework
春季方面
编译
测试编译

这样做涵盖了所有疯狂的Spring AOP案例,甚至包括私有事务方法。

考虑通过maven使用编译时编织:

<properties>
    <aspectj.version>1.6.12</aspectj.version>
</properties>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.4</version>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjtools</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <complianceLevel>1.7</complianceLevel>
                <aspectLibraries>
                    <aspectLibrary>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-aspects</artifactId>
                    </aspectLibrary>
                </aspectLibraries>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

1.6.12
org.codehaus.mojo
aspectj maven插件
1.4
org.aspectj
aspectjtools
${aspectj.version}
1.7
1.7
1.7
org.springframework
春季方面
编译
测试编译
这样做涵盖了所有疯狂的Spring AOP案例,甚至包括私有事务方法