Silicon Valley Code Camp : October 3rd and 4th, 2009
Ramnivas is a technologist, author, and presenter who is passionate about doing software right. He has been leading innovation in Spring Framework and Cloud Foundry since their beginning. Ramnivas has led a group in Cloud Foundry and started the Spring Cloud project. Ramnivas is the author of AspectJ in Action (1st ed, 2nd ed), the best-selling book on aspect-oriented programming that has been lauded by industry experts for its presentation of practical and innovative approach to solve real-world problems. He has at many leading industry events including JavaOne, ScalaDays, JavaPolis, No Fluff Just Stuff, SpringOne, and O'Reilly OSCON.
The Spring Framework is a comprehensive platform for developing enterprise applications. At the core, it supports dependency injection, aspect-oriented programming, and enterprise service abstraction. Come to this session to understand why Spring is a compelling platform for building enterprise applications.
In this demo-driven session, we will examine how Spring helps in building web applications, adding persistence and transaction management, and securing them. We will also peek into integrating with third-party systems through Spring Web Services, implementing monitoring and management using aspects and JMX, and utilizing messaging with JMS along with Spring Integration. By the end of this session, you will have a good understanding of the value proposition of Spring and related technologies.
Enterprise application development is a gold mine for applications of AOP. There are many crosscutting concerns found in a typical enterprise application, ranging from well-known security and transaction management to application- and technology-specific concerns. Using AOP leads to implementations that are easy to understand and easy to change. When we combine Spring with AspectJ, we get a pragmatic AOP solution.
This demo-driven session shows how to implement common functionality needed by typical enterprise applications, with a focus on web applications. We will start with a barebones web application and develop aspects to incrementally add functionalities such as monitoring, exception handling, policy enforcement, transaction management, fault tolerance, and domain-object security.
The annotations feature in Java has changed the landscape of enterprise Java development. Framework developers have been creating and consuming framework-specific annotations to simplify their frameworks. Application developers should be able to take the same route of using their own annotations. Yet, we don't use such techniques during everyday development. The reason is complexity in processing annotations.
Aspect-oriented programming (AOP) provides a simple way to process annotations. Developers can create their own annotations and mark programming elements with them. Aspects can write selection logic based on those annotations. Many developers who previously may have shied away from AOP due to concerns about the complexity in writing pointcuts and the fear of unexpected selection, now look at it favorably once they understand how annotations simplify AOP.
In this session, we explore how AOP can simplify consume custom annotations in everyday development. The examples will cover a wide range of domains including auditing, monitoring, caching, security, concurrency control, transaction management, and policy enforcement.