Эхх, два вопроса за день.. Хочу использовать аоп в спринге... Но чего то ничего не получается... вот мой applicationContext:
Код | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-// SPRING/DTD BEAN//EN" "http://www.springframework.orgs/dtd/spring-beans.dtd">
<beans> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"> <value>jdbc:oracle:thin:@127.0.0.1:1521:ORCL</value> </property> <property name="username"> <value>USER</value> </property> <property name="password"> <value>USER</value> </property> </bean>
<bean id="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="properties"> <props> <!-- <prop key="hibernate.hbm2ddl.auto">create</prop> --> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.c3p0.minPoolSize">5</prop> <prop key="hibernate.c3p0.maxPoolSize">20</prop> </props> </property> </bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource"/> </property> <property name="hibernateProperties"> <ref bean="hibernateProperties"/> </property> <property name="mappingResources"> <list> <value>phonebook/dao/phonebook.hbm.xml</value> </list> </property> </bean> <bean id="phonebookDataProvider" class="phonebook.dao.PhonebookDataProvider"> <property name="pbDao"> <ref local="phonebookDAO"/> </property> </bean>
<bean id="phonebookDAO" class="phonebook.dao.PhonebookDAO"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <bean id="dbAfterTracer" class="phonebook.aop.AfterDBAction"/> <bean id="afterMakingDBAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <property name="advice"> <ref local="dbAfterTracer"/> </property> <property name="pattern"> <value>*</value> </property> </bean> <bean id="phonebook" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces"> <list> <value>phonebook.dao.IPhonebookDataProvider</value> </list> </property> <property name="interceptorNames"> <list> <value>afterMakingDBAdvisor</value> </list> </property> <property name="target"> <ref bean="phonebookDataProvider"/> </property> </bean>
</beans>
|
И еще:
Код | package phonebook.aop;
import org.springframework.aop.AfterReturningAdvice; import org.apache.log4j.Logger;
public class AfterDBAction implements AfterReturningAdvice{ public AfterDBAction(){ System.out.println("after db action created !!!"); } public void afterReturning(Object obj, java.lang.reflect.Method method, Object[] obj2, Object obj3) throws Throwable{ String str = "Был вызван метод "+method.getName() + " с параметрами "; for(int i = 0; i < obj2.length; i++){ str+=obj2[i]+" "; } str += "у объекта "+obj.getClass().getName(); System.out.println("!!!!!!: "+str); } }
package phonebook.dao;
import java.util.List;
public interface IPhonebookDataProvider { public List getPhonebookEntries() throws Exception; public PhonebookEntry getPhonebookEntry(int entryID, int rowID) throws Exception; public int addEntry(PhonebookEntry pe) throws Exception; }
package phonebook.dao;
import java.util.List;
public class PhonebookDataProvider implements IPhonebookDataProvider{ private IPhonebookDAO pbDao; public PhonebookDataProvider(){} public void setPbDao(IPhonebookDAO pbDao){ this.pbDao = pbDao; } public List getPhonebookEntries() throws Exception{ return pbDao.getPhonebookEntries(); } public PhonebookEntry getPhonebookEntry(int entryID, int rowID) throws Exception{ return pbDao.getPhonebookEntry(Integer.valueOf(entryID), Integer.valueOf(rowID)); } public int addEntry(PhonebookEntry pe) throws Exception{ return pbDao.addPhonebookEntry(pe); } }
|
Вот "after db action created !!!" появляется в консольке во время развертывания... А дальше... ничего непишет ни в консольке, ни в файлах логирования томката, нигде.... (((( не понимаю почему ((((
|