Java 为什么spring在调用Springbean的方法之前调用了这么多方法?
假设我在spring配置中指定了一个类,如下所示:Java 为什么spring在调用Springbean的方法之前调用了这么多方法?,java,spring,Java,Spring,假设我在spring配置中指定了一个类,如下所示: <bean id="playerAccountDao" class="com.prcj.db.dao.PlayerAccountDaoImpl" scope="prototype"> <property name="playerDao" ref="playerDao" /> </bean> <bean id="commonPlayerDao" class="com.prcjcommons.db
<bean id="playerAccountDao" class="com.prcj.db.dao.PlayerAccountDaoImpl" scope="prototype">
<property name="playerDao" ref="playerDao" />
</bean>
<bean id="commonPlayerDao" class="com.prcjcommons.db.dao.PlayerDaoImpl" scope="prototype">
<property name="sessionFactory" ref="siteSessionFactory" />
</bean>
为什么
spring
会这样做?为什么它不直接调用DAO
方法呢?让我来转一转:为什么您编写过调用其他方法的方法,而不是直接更改变量
这只是另一种间接方式。IoC可能非常复杂,Spring有很多特性可以让用户满意(r),因此它有很多情况需要支持。拥有这些不同的调用策略和拦截器意味着它们可以避免重复,共享公共方面,同时允许不同的行为
如果他们只是调用了DAO方法,那么他们的大部分功能集就不受支持。Spring提供了AOP功能,这就是为什么您需要这样做的原因
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
Method.invoke(Object, Object...) line: 606
AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) line: 310
ReflectiveMethodInvocation.invokeJoinpoint() line: 182
ReflectiveMethodInvocation.proceed() line: 149
TransactionInterceptor.invoke(MethodInvocation) line: 106
ReflectiveMethodInvocation.proceed() line: 171
JdkDynamicAopProxy.invoke(Object, Method, Object[]) line: 204
$Proxy151.selectRecordList(Long, Integer, PlayerStatus, UserCategory, Date, Date, int, int) line: not available