This essay developed out of conversations I've had with several other programmers about why Java smelled suspicious. It's not a critique of Java!
Sycorax - complete tutorials
Programming Tutorials
" Java provides the industry - software companies and customer alike , an opportunity to create a true open computing environment where software is portable,
and customers benefit from increase competition. "
Spring Framework Overview
Benefits of Spring Framework
Installing and downloading
Spring Framework
Whats new in spring 2.0?
Introduction to IOC
Setter Injection
Constructor Injection
Spring MVC
Spring and Hibernate
Spring Web Framework
Spring Web Flow
Spring AOP
Register now to recieve special alert and latest technology news!
Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing
another way of thinking about program structure. In addition to classes, AOP gives you aspects. Aspects enable
modularization of concerns such as transaction management that cut across multiple types and objects. (Such
concerns are often termed crosscutting concerns.)
One of the key components of Spring is the AOP framework. While the Spring IoC container does not depend on AOP, meaning you don't need to use AOP if you don't want to, AOP complements Spring IoC to provide a very capable middleware solution.
AOP concepts
Let us begin by defining some central AOP concepts. These terms are not Spring-specific. Unfortunately, AOP
terminology is not particularly intuitive; however, it would be even more confusing if Spring used its own
terminology.
. Aspect: A modularization of a concern that cuts across multiple objects. Transaction management is a good
example of a crosscutting concern in J2EE applications. In Spring AOP, aspects are implemented using
regular classes (the schema-based approach) or regular classes annotated with the @Aspect annotation
(@AspectJ style).
. Join point: A point during the execution of a program, such as the execution of a method or the handling of
an exception. In Spring AOP, a join point always represents a method execution. Join point information isavailable in advice bodies by declaring a parameter of type org.aspectj.lang.JoinPoint.
. Advice: Action taken by an aspect at a particular join point. Different types of advice include "around,"
"before" and "after" advice. Advice types are discussed below. Many AOP frameworks, including Spring,
model an advice as an interceptor, maintaining a chain of interceptors "around" the join point.
. Pointcut: A predicate that matches join points. Advice is associated with a pointcut expression and runs at
any join point matched by the pointcut (for example, the execution of a method with a certain name). The
concept of join points as matched by pointcut expressions is central to AOP: Spring uses the AspectJ
pointcut language by default.
. Introduction: (Also known as an inter-type declaration). Declaring additional methods or fields on behalf of a
type. Spring AOP allows you to introduce new interfaces (and a corresponding implementation) to any
proxied object. For example, you could use an introduction to make a bean implement an IsModified
interface, to simplify caching.
. Target object: Object being advised by one or more aspects. Also referred to as the advised object. Since
Spring AOP is implemented using runtime proxies, this object will always be a proxied object.
. AOP proxy: An object created by the AOP framework in order to implement the aspect contracts (advise
method executions and so on). In the Spring Framework, an AOP proxy will be a JDK dynamic proxy or a
CGLIB proxy. Proxy creation is transparent to users of the schema-based and @AspectJ styles of aspect
declaration introduced in Spring 2.0.
. Weaving: Linking aspects with other application types or objects to create an advised object. This can be
done at compile time (using the AspectJ compiler, for example), load time, or at runtime. Spring AOP, like
other pure Java AOP frameworks, performs weaving at runtime.