SlideShare a Scribd company logo
1 of 19
eSobi WebsiteeSobi Website
Multilayered
ArchitectureArchitecture
Allan Huang @ esobi Inc.Allan Huang @ esobi Inc.
Agenda
 Java EE Web Technique
 Multilayered Architecture
 Presentation / Web Service Layer
 Aspect Oriented Programming
 AOP Terminology
 Proxy Pattern
 Dynamic Proxy
 Inversion Of Control
 Service Locator Layer
 Business Logic Layer
 Data Access Layer
 Domain Object Layer
 Utility Layer
Java EE Web Technique
 A tailored lightweight and multifunctional web platform
for business operations of eSobi.
 Refer some of 14 rules on the book High Performance
Web Sites.
 Design Presentation and Web Service Layer by referring
MVC concept and structure of Struts 2
 Design Business Logic Layer and Data Access Layer by
referring AOP and IoC concept of Spring 2
 Auto-setup all bean instances by using the extends and
implements declarations to reduce the amount of
configuration files.
Presentation / Web Service
Layer
 Web Context Listener initializes/destroys needed
resources firstly/lastly while web context is
loaded/unloaded.
 Resource Access Filter intercepts any HTTP requests,
and handles/passes/rejects them, further forward them
to the next handler/servlet.
 The main goal of HTTP ETag Response Stream, HTTP
Cache-Control Header and Compressed Response
Stream reduce the amount or frequency of HTTP
response transmission.
Presentation / Web Service
Layer
 HTTP Request, HTTP Response and Servlet Context
are wrapped in a Request Context is convenience to be
passed to Controllers.
 Page Action and it’s Controller handle HTTP requests
and return an HTML page via Page Forward or Page
Redirect.
 AJAX Call and it’s Controller handle HTTP requests and
return an JSON string that wrapped in AJAX Call Return
and JSON Message.
 Remote Command and It’s Controller handle HTTP
requests and return an XML string in Remote Command
Return and XML Message.
Aspect Oriented Programming
 AOP (Aspect Oriented Programming) that aims to
increase Modularity by allowing the separation of Cross-
Cutting Concerns.
AOP Terminology
 Join point
 A point during the execution of a program, such as the execution
of a method or the handling of an exception.
 Advice
 Action taken by an aspect at a particular join point. Different
types of advice include "around," "before" and "after" advice.
 Pointcut
 A predicate that matches join points.
 Weaving
 linking aspects with other application types or objects to create
an advised object. This can be done at compile time, load time,
or at runtime.
Proxy Pattern
 A surrogate or placeholder for another object to control
access to it.
 Deferred Initialization
 Acts as a "stand-in" for the actual implementation allowing it to be
instantiated only when absolutely necessary.
 Security
 Verify that the user actually has the permission to execute the
method.
 Logging
 Log every method invocation, providing valuable debugging
information.
 Performance Monitoring
 Log each method invocation to a performance monitor allowing
system administrators to see what parts of the system are potentially
bogged down.
Dynamic Proxy
 Using standard Java SE Dynamic Proxies (since JDK1.3)
for AOP proxies. This enables any interface (or set of
interfaces) to be proxied.
Inversion of Control
 The main goal of IOC (Inversion of Control) is to remove
dependencies of an application.
 DI (Dependency Injection) is a subtype of IoC and is
implemented by constructor injection, setter injection or
method injection.
Service Locator Layer
 Singleton Service Bean Factory create all Service Bean
instances at initiate time of web context and put them
into it’s own pool. DAO Bean Factory is the same as
above circumstances.
 According to AOP, all bean instances are constructed by
Java SE Reflection API and create dynamic
implementations of interfaces at runtime by Java SE
Dynamic Proxy API.
Business Logic Layer
 Service Bean must implement specific service interface
that implements IGeneric Service Interface, and extends
Abstract Generic Service.
 Transaction Adviser is responsible for opening SQL
connection, executing target method, committing result,
and finally close SQL connection by Java SE Dynamic
Proxy API.
 Thread Local<Stack> of Transaction Adviser keeps track
of each target method recursively via push and pop
action per thread lifecycle.
Data Access Layer
 DAO Bean must implement specific DAO interface that
implements IGeneric DAO Interface, and extends
Abstract Generic DAO.
 JDBC Utility is responsible for setting SQL Data Source
at initiate time of web context and closing Data Source at
destroy time of web context.
 Thread Local<Connection> of JDBC Utility keeps track
of concurrent connection per thread lifecycle.
Domain Object Layer
 Domain Object classes must extend Abstract Entity
interface.
 Each domain class has an unique ID attribute as primary
key and its default equals and hashCode methods are
overridden.
 Relationships be expressed as Java List or Set structure
among domain classes are constructed by according to
E-R model.
Utility Layer
 Introduce well-known Apache Commons libraries that
contain BeanUtils, Codec, Collections, Compress,
DBCP, DbUtils, Email, FileUpload, IO, Lang, Logging,
Net, Primitives, Proxy, and Log4J, Xerces, etc.
 Develop Utility classes (framework) that are
independence on Java EE web container based on
above libraries.
Reference
 Spring Gossip: AOP 觀念與術語
 Aspect Oriented Programming with Spring
 Java Reflection - Dynamic Proxies
 Apache Commons Proxy
Q&A

More Related Content

What's hot

What's hot (20)

Spring jdbc
Spring jdbcSpring jdbc
Spring jdbc
 
Spring core
Spring coreSpring core
Spring core
 
Spring from a to Z
Spring from  a to ZSpring from  a to Z
Spring from a to Z
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Java spring framework
Java spring frameworkJava spring framework
Java spring framework
 
CodeIgniter 101 Tutorial
CodeIgniter 101 TutorialCodeIgniter 101 Tutorial
CodeIgniter 101 Tutorial
 
Servlet to Spring: Internal Understanding
Servlet to Spring: Internal UnderstandingServlet to Spring: Internal Understanding
Servlet to Spring: Internal Understanding
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC Seminar
 
Spring aop
Spring aopSpring aop
Spring aop
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issues
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
 
Spring MVC Basics
Spring MVC BasicsSpring MVC Basics
Spring MVC Basics
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
 
Spring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topicsSpring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topics
 
JDBC Connectivity Model
JDBC Connectivity ModelJDBC Connectivity Model
JDBC Connectivity Model
 
Introduction to Ibatis by Rohit
Introduction to Ibatis by RohitIntroduction to Ibatis by Rohit
Introduction to Ibatis by Rohit
 
Jdbc architecture and driver types ppt
Jdbc architecture and driver types pptJdbc architecture and driver types ppt
Jdbc architecture and driver types ppt
 

Viewers also liked

Viewers also liked (7)

Build Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGapBuild Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGap
 
Boilerpipe Integration And Improvement
Boilerpipe Integration And ImprovementBoilerpipe Integration And Improvement
Boilerpipe Integration And Improvement
 
Weighted feed recommand
Weighted feed recommandWeighted feed recommand
Weighted feed recommand
 
Phonegap facebook- plugin
Phonegap facebook- pluginPhonegap facebook- plugin
Phonegap facebook- plugin
 
PhoneGap talk from Singapore
PhoneGap talk from SingaporePhoneGap talk from Singapore
PhoneGap talk from Singapore
 
Phonegap facebook plugin - Seoul & Tokyo
Phonegap facebook plugin - Seoul & TokyoPhonegap facebook plugin - Seoul & Tokyo
Phonegap facebook plugin - Seoul & Tokyo
 
PGDAY EU 2016 workshop - privacy and security
PGDAY EU 2016 workshop - privacy and securityPGDAY EU 2016 workshop - privacy and security
PGDAY EU 2016 workshop - privacy and security
 

Similar to eSobi Website Multilayered Architecture

Java New Evolution
Java New EvolutionJava New Evolution
Java New Evolution
Allan Huang
 

Similar to eSobi Website Multilayered Architecture (20)

EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLink
 
Tu1 1 5l
Tu1 1 5lTu1 1 5l
Tu1 1 5l
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New Evolution
 
Signal Framework
Signal FrameworkSignal Framework
Signal Framework
 
Spring 2
Spring 2Spring 2
Spring 2
 
Spring 1 day program
Spring 1 day programSpring 1 day program
Spring 1 day program
 
P20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptxP20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptx
 
MarvelSoft SchoolAdmin Dev Framework
MarvelSoft SchoolAdmin Dev FrameworkMarvelSoft SchoolAdmin Dev Framework
MarvelSoft SchoolAdmin Dev Framework
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
 
Rajesh Ramasamy
Rajesh RamasamyRajesh Ramasamy
Rajesh Ramasamy
 
Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
 
ADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.pptADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.ppt
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Java EE 7 introduction
Java EE 7  introductionJava EE 7  introduction
Java EE 7 introduction
 
Java ee introduction
Java ee introductionJava ee introduction
Java ee introduction
 
Complete java syllabus 7448062045 Yesdo Sddd
Complete java syllabus 7448062045 Yesdo SdddComplete java syllabus 7448062045 Yesdo Sddd
Complete java syllabus 7448062045 Yesdo Sddd
 
Spring ppt
Spring pptSpring ppt
Spring ppt
 

More from Allan Huang (19)

Concurrency in Java
Concurrency in  JavaConcurrency in  Java
Concurrency in Java
 
Build, logging, and unit test tools
Build, logging, and unit test toolsBuild, logging, and unit test tools
Build, logging, and unit test tools
 
Drools
DroolsDrools
Drools
 
Java JSON Parser Comparison
Java JSON Parser ComparisonJava JSON Parser Comparison
Java JSON Parser Comparison
 
Netty 4-based RPC System Development
Netty 4-based RPC System DevelopmentNetty 4-based RPC System Development
Netty 4-based RPC System Development
 
Tomcat New Evolution
Tomcat New EvolutionTomcat New Evolution
Tomcat New Evolution
 
JQuery New Evolution
JQuery New EvolutionJQuery New Evolution
JQuery New Evolution
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
YQL Case Study
YQL Case StudyYQL Case Study
YQL Case Study
 
HTML5 Multithreading
HTML5 MultithreadingHTML5 Multithreading
HTML5 Multithreading
 
HTML5 Offline Web Application
HTML5 Offline Web ApplicationHTML5 Offline Web Application
HTML5 Offline Web Application
 
HTML5 Data Storage
HTML5 Data StorageHTML5 Data Storage
HTML5 Data Storage
 
Java Script Patterns
Java Script PatternsJava Script Patterns
Java Script Patterns
 
Web Crawler
Web CrawlerWeb Crawler
Web Crawler
 
eSobi Site Initiation
eSobi Site InitiationeSobi Site Initiation
eSobi Site Initiation
 
Architecture of eSobi club based on J2EE
Architecture of eSobi club based on J2EEArchitecture of eSobi club based on J2EE
Architecture of eSobi club based on J2EE
 
J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)
 
Search is not only search
Search is not only searchSearch is not only search
Search is not only search
 
Issue tracking workflow in web development and maintenance cycle
Issue tracking workflow in web development and maintenance cycleIssue tracking workflow in web development and maintenance cycle
Issue tracking workflow in web development and maintenance cycle
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

eSobi Website Multilayered Architecture

  • 2. Agenda  Java EE Web Technique  Multilayered Architecture  Presentation / Web Service Layer  Aspect Oriented Programming  AOP Terminology  Proxy Pattern  Dynamic Proxy  Inversion Of Control  Service Locator Layer  Business Logic Layer  Data Access Layer  Domain Object Layer  Utility Layer
  • 3. Java EE Web Technique  A tailored lightweight and multifunctional web platform for business operations of eSobi.  Refer some of 14 rules on the book High Performance Web Sites.  Design Presentation and Web Service Layer by referring MVC concept and structure of Struts 2  Design Business Logic Layer and Data Access Layer by referring AOP and IoC concept of Spring 2  Auto-setup all bean instances by using the extends and implements declarations to reduce the amount of configuration files.
  • 4.
  • 5.
  • 6. Presentation / Web Service Layer  Web Context Listener initializes/destroys needed resources firstly/lastly while web context is loaded/unloaded.  Resource Access Filter intercepts any HTTP requests, and handles/passes/rejects them, further forward them to the next handler/servlet.  The main goal of HTTP ETag Response Stream, HTTP Cache-Control Header and Compressed Response Stream reduce the amount or frequency of HTTP response transmission.
  • 7. Presentation / Web Service Layer  HTTP Request, HTTP Response and Servlet Context are wrapped in a Request Context is convenience to be passed to Controllers.  Page Action and it’s Controller handle HTTP requests and return an HTML page via Page Forward or Page Redirect.  AJAX Call and it’s Controller handle HTTP requests and return an JSON string that wrapped in AJAX Call Return and JSON Message.  Remote Command and It’s Controller handle HTTP requests and return an XML string in Remote Command Return and XML Message.
  • 8. Aspect Oriented Programming  AOP (Aspect Oriented Programming) that aims to increase Modularity by allowing the separation of Cross- Cutting Concerns.
  • 9. AOP Terminology  Join point  A point during the execution of a program, such as the execution of a method or the handling of an exception.  Advice  Action taken by an aspect at a particular join point. Different types of advice include "around," "before" and "after" advice.  Pointcut  A predicate that matches join points.  Weaving  linking aspects with other application types or objects to create an advised object. This can be done at compile time, load time, or at runtime.
  • 10. Proxy Pattern  A surrogate or placeholder for another object to control access to it.  Deferred Initialization  Acts as a "stand-in" for the actual implementation allowing it to be instantiated only when absolutely necessary.  Security  Verify that the user actually has the permission to execute the method.  Logging  Log every method invocation, providing valuable debugging information.  Performance Monitoring  Log each method invocation to a performance monitor allowing system administrators to see what parts of the system are potentially bogged down.
  • 11. Dynamic Proxy  Using standard Java SE Dynamic Proxies (since JDK1.3) for AOP proxies. This enables any interface (or set of interfaces) to be proxied.
  • 12. Inversion of Control  The main goal of IOC (Inversion of Control) is to remove dependencies of an application.  DI (Dependency Injection) is a subtype of IoC and is implemented by constructor injection, setter injection or method injection.
  • 13. Service Locator Layer  Singleton Service Bean Factory create all Service Bean instances at initiate time of web context and put them into it’s own pool. DAO Bean Factory is the same as above circumstances.  According to AOP, all bean instances are constructed by Java SE Reflection API and create dynamic implementations of interfaces at runtime by Java SE Dynamic Proxy API.
  • 14. Business Logic Layer  Service Bean must implement specific service interface that implements IGeneric Service Interface, and extends Abstract Generic Service.  Transaction Adviser is responsible for opening SQL connection, executing target method, committing result, and finally close SQL connection by Java SE Dynamic Proxy API.  Thread Local<Stack> of Transaction Adviser keeps track of each target method recursively via push and pop action per thread lifecycle.
  • 15. Data Access Layer  DAO Bean must implement specific DAO interface that implements IGeneric DAO Interface, and extends Abstract Generic DAO.  JDBC Utility is responsible for setting SQL Data Source at initiate time of web context and closing Data Source at destroy time of web context.  Thread Local<Connection> of JDBC Utility keeps track of concurrent connection per thread lifecycle.
  • 16. Domain Object Layer  Domain Object classes must extend Abstract Entity interface.  Each domain class has an unique ID attribute as primary key and its default equals and hashCode methods are overridden.  Relationships be expressed as Java List or Set structure among domain classes are constructed by according to E-R model.
  • 17. Utility Layer  Introduce well-known Apache Commons libraries that contain BeanUtils, Codec, Collections, Compress, DBCP, DbUtils, Email, FileUpload, IO, Lang, Logging, Net, Primitives, Proxy, and Log4J, Xerces, etc.  Develop Utility classes (framework) that are independence on Java EE web container based on above libraries.
  • 18. Reference  Spring Gossip: AOP 觀念與術語  Aspect Oriented Programming with Spring  Java Reflection - Dynamic Proxies  Apache Commons Proxy
  • 19. Q&A