Java/Spring/FileSystemXmlApplicationContext

Материал из Java эксперт
Перейти к: навигация, поиск

Load config with FileSystemXmlApplicationContext

   <source lang="java">
      

File: IBusinessLogic.java

public interface IBusinessLogic {

  public void foo();

}

File: MainApplication.java

import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class MainApplication {

  public static void main(String [] args)
  {
     ApplicationContext ctx = new FileSystemXmlApplicationContext("build/springconfig.xml");
     IBusinessLogic testObject = (IBusinessLogic) ctx.getBean("businesslogicbean");
     testObject.foo();
  }

}

File: springconfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>

 <bean id="businesslogicbean"
 class="org.springframework.aop.framework.ProxyFactoryBean">
   <property name="proxyInterfaces">
     <value>IBusinessLogic</value>
   </property>
   <property name="target">
     <ref local="beanTarget"/>
   </property>
   <property name="interceptorNames">
     <list>
       <value>theTracingBeforeAdvisor</value>
       <value>theTracingAfterAdvisor</value>
     </list>
   </property>
 </bean>
 
 <bean id="beanTarget"
 class="BusinessLogic"/>
 
 
 <bean id="theTracingBeforeAdvisor"
 class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
   <property name="advice">
     <ref local="theTracingBeforeAdvice"/>
   </property>
   <property name="pattern">
     <value>.*</value>
   </property>
 </bean>
 
 
 
 <bean id="theTracingAfterAdvisor"
 class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
   <property name="advice">
     <ref local="theTracingAfterAdvice"/>
   </property>
   <property name="pattern">
     <value>.*</value>
   </property>
 </bean>
 
 <bean id="theTracingBeforeAdvice"
 class="TracingBeforeAdvice"/>
 <bean id="theTracingAfterAdvice"
 class="TracingAfterAdvice"/>

</beans>

File: TracingAfterAdvice.java import java.lang.reflect.Method; import org.springframework.aop.AfterReturningAdvice; public class TracingAfterAdvice implements AfterReturningAdvice {

  public void afterReturning(Object object, Method m, Object[] args, Object target) throws Throwable
  {
      System.out.println("Hello world! (by " + this.getClass().getName() + ")");
  }

}

File: TracingBeforeAdvice.java import java.lang.reflect.Method; import org.springframework.aop.MethodBeforeAdvice; public class TracingBeforeAdvice implements MethodBeforeAdvice {

  public void before(Method m, Object[] args, Object target) throws Throwable
  {
     System.out.println("Hello world! (by " + this.getClass().getName() + ")");
  }

}

File: BusinessLogic.java

public class BusinessLogic implements IBusinessLogic {

    public void foo() 
    {
      System.out.println("Inside BusinessLogic.foo()");
    }

}


      </source>
   
  
 
  



Setting Up Spring Ant Environment

   <source lang="java">

File: BusinessLogic.java

public class BusinessLogic implements IBusinessLogic {

    public void foo() 
    {
      System.out.println("Inside BusinessLogic.foo()");
    }

}

File: IBusinessLogic.java

public interface IBusinessLogic {

  public void foo();

}

File: MainApplication.java

import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class MainApplication {

  public static void main(String [] args)
  {
     // Read the configuration file
     ApplicationContext ctx
         = new FileSystemXmlApplicationContext("build/springconfig.xml");
     //Instantiate an object
     IBusinessLogic testObject = (IBusinessLogic) ctx.getBean("businesslogicbean");
     //Execute the public method of the bean (the test)
     testObject.foo();
  }

}

File: springconfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>

 <bean id="businesslogicbean"
 class="org.springframework.aop.framework.ProxyFactoryBean">
   <property name="proxyInterfaces">
     <value>IBusinessLogic</value>
   </property>
   <property name="target">
     <ref local="beanTarget"/>
   </property>
 </bean>
 
 <bean id="beanTarget"
 class="BusinessLogic"/>

</beans>


      </source>