220 likes | 601 Views
Spring Framework. Kansas City Java User’s Group Jason W. Bedell July 12, 2006. Overview. J2EE Alternative Inversion of Control (IoC) vs. Dependency Injection (DI) Aspect Oriented Programming (AOP) Spring Modules Example Application Dependency Injection Example AOP Example
E N D
Spring Framework Kansas City Java User’s Group Jason W. Bedell July 12, 2006
Overview • J2EE Alternative • Inversion of Control (IoC) vs. Dependency Injection (DI) • Aspect Oriented Programming (AOP) • Spring Modules • Example Application • Dependency Injection Example • AOP Example • Real-World Application – DI & AOP
J2EE Alternative • Heavyweight complexity • An easier way to connect disparate components • Enterprise Services using POJO’s • Other players: PicoContainer, HiveMind, Avalon
IoC and Dependency Injection • IoC an earlier, more general term • Think “plug-ins” • Behavior is configured instead of programmed. • Dependency Injection is a pattern to achieve IoC • Alternative patterns: Service Locator
Aspect Oriented Programming • “AOP enables modularization of crosscutting concerns” • AOP Terms: • Aspects • Joinpoints • Advice • Cutpoints • Introductions • Targets • Proxy • Weaving • Alternative AOP Containers: AspectJ, JBoss
AOP Terms • Aspects: • The modularized logic that is being applied throughout an application. • Examples: Logging, Security, Transaction Management, etc. • Joinpoints • An execution point where an aspect can be applied. • Examples: a method being called, a method returning, an exception being thrown, a field being modified, etc. • Advice • The actual implementation of an aspect. • Cutpoints • The joinpoints where advice should be applied. • Introductions • A method or attribute that you introduce to an existing class • Targets • A class that is being advised • Example: Course Service, Student Service, etc. • Proxy • The object created after applying advice to a target object. • Weaving • The process of applying aspects to target objects to create a new, proxied object. • Weaving can occur at compile time, classload time, runtime.
Spring Modules • The core container • Application context module • AOP Module • JDBC abstraction and DAO module • O/R mapping integration module (supports Hibernate, JDO, Oracle TopLink, Apache OJB, and iBATIS) • Web module • MVC framework
Example ApplicationAOP Example • Determine what Joinpoint to use as our Cutpoint • Implement the Aspect in the form of Advise • Define a Spring Advisor • Spring Advisor: the combination of advice that defines the aspect’s behavior and a pointcut defining where the aspect should be executed. • Spring allows you to define your own advisor or use a predefined, packaged advisor • Define your bean proxy • Inject your Advisor into the Proxy as an Interceptor
Real World ExampleDI & AOP • Application Tier • SpringMVC Framework • Tiles, JSTL • Service Tier • Service POJO Targets • Persistence Tier • DAO POJO Targets • Hibernate Framework • Security Aspect • Acegi Framework Advisor • Transaction Support Aspect • Spring Transaction Management Advisor