Learn Spring AOP in 30 minutes

Learn Spring AOP

Learn Spring AOP in 30 minutes

Pangkalahatang-ideya ng:

Aspect Oriented Programming (AOP) is another approach to programming like Object Oriented Programming (OOP). However, AOP can complement OOP by providing another way to think about the program structure with which a software application is developed. May ilang pagkakatulad sa kung paano,,en,at AOP ay ginagamit upang bumuo ng code ng software kahit na sila ay pinangalanang naiiba - sa OOP ang yunit ng modularity ay kilala bilang klase habang na sa AOP ay kilala bilang Aspect,,en,Ang mga aplikasyon ng AOP ay binuo batay sa,,en,bagaman ang balangkas ng Spring ay maaari ding gamitin nang walang AOP,,en,Tinatalakay ng artikulong ito kung paano gumagana ang mga aplikasyon ng Spring AOP,,en,Ano ang AOP,,en,ay isa pang diskarte sa software programming,,en,Nauunawaan natin ang AOP sa tulong ng isang halimbawa,,en,Ang istraktura ng programa para sa isang software application ay naglalaman ng tatlong layers,,en,Layer ng UI,,en,negosyo lohika layer at database layer,,en,Upang gumana ng maayos,,en,ang lahat ng layers ay nangangailangan ng suporta at komunikasyon,,en,Ang suporta at komunikasyon ay maaaring ipagkaloob ng mahusay na pag-log,,en,pamamahala ng transaksyon,,en,profile at higit pa,,en,Sa AOP parlance,,en OOP and AOP are used to build software code although they are named differently – in OOP the unit of modularity is known as class while that in AOP is known as Aspect. AOP applications are developed based on the Spring framework though the Spring framework can also be used without the AOP. This article discusses how to work with Spring AOP applications.







What is AOP?

AOP, as the name suggests, is another approach to software programming. Let us understand AOP with the help of an example. A program structure for a software application contains three layers: UI layer, business logic layer and database layer. To function properly, all layers need support and communication. Support and communication can be provided by efficient logging, security, transaction management, profiling and more. In AOP parlance, ang iba't ibang mga yunit na nagbibigay ng suporta ay kilala bilang mga alalahanin,,en,Dahil ang mga alalahaning ito ay nagbibigay ng suporta sa mga layers,,en,sila ay tinutukoy din bilang mga alalahanin sa pag-iwas,,en,Ang mga pag-iisip na ito ng cross-cutting ay naka-encapsulate sa kung ano ang kilala bilang mga aspeto,,en,ang isang module ng pag-log ay maaaring tinatawag na AOP Aspect para sa pag-log,,en,Ang mga aspeto ay tinukoy ng user at maaaring tinukoy sa batayan ng run time,,en,Mayroong maraming mga pakinabang ng paggamit ng mga aspeto,,en,sila ay magagamit muli sa mga aplikasyon ng software at negosyo,,en,dahil naglalaman ang mga ito ng mga pamamaraan o mga function,,en,kailangan ng mga developer ng software na gamitin ang mga ito sa kanilang istraktura ng programa,,en,Binabawasan ng mga aspeto ang pag-unlad sa itaas,,en,AOP Concepts,,en,Mga konsepto ng AOP,,en,humimok ng istrakturang AOP at gamitin ang AOP,,en,ito ay kinakailangan upang malaman ang mga konsepto,,en,Ang mga pangunahing konsepto ay ipinaliwanag sa ibaba,,en,Pangalan ng konsepto,,en,Aspeto,,en. Since these concerns provide support across layers, they are also referred to as cross-cutting concerns. These cross-cutting concerns are encapsulated in what are known as Aspects. For example, a logging module can be called an AOP Aspect for logging. Aspects are user-defined and can be defined on run time basis. There are many advantages of using Aspects. One, they are reusable across software applications and enterprises; two, since they contain procedures or functions, software developers just need to use them in their program structure; three, Aspects reduce development overhead.

Must read – Learn Spring Boot in 30 Minutes

Must read – Steps to learn Spring Batch Service



AOP Concepts

AOP concepts drive the AOP structure and to use AOP, it is required to learn the concepts. The main concepts are explained below.

Concept name Paglalarawan
Aspect Ang aspeto ay isang module na binubuo ng isang hanay ng mga API na nagbibigay ng isa o higit pang mga pag-iisip ng cross-cutting,,en,kung ang seguridad ay kailangang ipatupad sa isang application ng software,,en,ang seguridad ng Aspect ay maaaring magbigay ng mga alalahanin sa seguridad sa mga layers ng application,,en,Ito ang lugar sa application ng software kung saan ang isang aksyon o hakbang ay kukunin gamit ang balangkas ng Spring AOP,,en,Ito ang aksyon na maisagawa bago o pagkatapos ng pagpapatupad ng pamamaraan,,en,ito ay ang piraso ng code na ginagamit sa panahon ng pagpapatupad ng programa,,en,Mayroong limang uri ng mga payo,,en,pagkatapos,,en,pagkatapos-pagbabalik,,en,pagkatapos-pagkahagis at paligid,,en,isang bago kahulugan ng payo,,en,newbusinessService,,en,doRequiredTask,,en,ay nangangahulugang ang payo,,en,ay tatakbo bago isagawa ang code,,en,Ilagay sa code kung saan dapat ipatupad ang isang payo,,en,Pinapayagan kang magdagdag ng mga klase o pamamaraan sa mga umiiral na klase,,en,Target na Bagay,,en. For example, if the security needs to be implemented in a software application, the security Aspect can provide security concerns across application layers.
Join Point This is the place in the software application where an action or step will be taken using the Spring AOP framework.
Advice This is the action to be executed before or after the method execution. Actually, it is the piece of code invoked during the program execution. There are five types of advices: before, after, after-returning, after-throwing and around. For example, <!– a before advice definition –>

<aop:before pointcut-ref=”newbusinessService”

method=”doRequiredTask”/> means that the advice before will be run before the code is executed.

Pointcut Place in the code where an advice should be executed.
Panimula Allows you to add classes or methods to existing classes.
Target Object Ito ang bagay na pinapayuhan ng isa o higit pang mga aspeto,,en,Ito ay ang proseso ng pag-uugnay sa mga aspeto ng mga bagay o uri ng application upang lumikha ng pinapayuhan na bagay,,en,Magagawa ito sa oras ng pagtakbo,,en,oras ng paglo-load o sa oras ng pagtitipon,,en,Pagbuo ng isang application na may AOP,,en,Ngayon na mayroon kami ng ilang kaalaman tungkol sa mga pangunahing kaalaman ng AOP,,en,makikita natin sa ibaba kung paano maaaring gamitin ang mga konsepto upang bumuo ng isang code sa isa o higit pang mga halimbawa,,en,Ipahayag ang isang aspeto,,en,Ang halimbawa sa ibaba ay nagpapakita kung paano maaaring ideklara ang isang aspeto,,en,aopAspect,,en,aopBean,,gd,Ipahayag ang isang puntas,,en,Ang halimbawa ng pointcut ay ibinigay sa ibaba,,en,aopbusinessService,,da,com.techalpine.Emp.getSal,,pt,bean id = "yBean,,en,Sa itaas na deklarasyon,,en,Ang isang pointcut na pinangalanang aopbusinessService ay ipinahayag at ito ay tutugma sa pagpapatupad ng,,en,getSal,,en,Ipahayag ang Payo,,en,Ang halimbawa sa ibaba ay nagpapakita kung paano ipinahayag ang lahat ng limang mga payo,,en.
Weaving It is the process of linking aspects with application objects or types to create an advised object. This can be done at run time, loading time or at the time of compilation.

Building an application with AOP








Now that we have some knowledge of the basics of AOP, we will see below how the concepts can be used to build a code with one or more examples:

Declare an aspect –

The example below shows how an aspect can be declared:

<aop:config>

<aop:aspect id=”aopAspect” ref=”aopBean”>

</aop:aspect>

</aop:config>

<bean id=”aopBean” class=”…”>

</bean>

Declare a pointcut –

The example of pointcut is given below:

<aop:config>

<aop:aspect id=”aopAspect” ref=”aopBean”>

<aop:pointcut id=”aopbusinessService”

expression=”execution(* com.techalpine.Emp.getSal(..))”/>

</aop:aspect>

</aop:config>

<bean id=”yBean” class=”…”>

</bean>

In the above declaration, a pointcut named aopbusinessService is declared and it will match the execution of getSal() pamamaraan.



Declare Advice –

The example below shows how all five advices can declared:

<aop:config>

<aop:aspect id=”aopAspect” ref=”aopBean”>

<aop:pointcut id=”aopbusinessService”

expression=”execution(* com.techalpine.aopapp.service. *. *,,pt,DOAOPTask,,fy,isang pagkatapos ng kahulugan ng payo,,en,isang after-returning definition ng payo,,en,Ang paraan ng doAOPTask ay dapat may parameter na may pangalang aopVal,,en,after-return pointcut-ref =,,en,pagbabalik =,,en,aopVal,,ga,isang after-throwing definition na payo,,en,Ang paraan ng doAOPTask ay dapat may parameter na may pangalang aopex,,en,after-throwing pointcut-ref =,,en,pagkahagis =,,en,isang paliwanag tungkol sa payo,,en,sa paligid pointcut-ref =,,en,yBean,,en,Tulad ng makikita mula sa halimbawa sa itaas,,en,idineklara ang lahat ng limang payo gamit ang,,en,ipapakita nito ang mga pagbawas ng punto at ang output sa mga puntong iyon,,en,Ang output ay nakasalalay sa punto ng pagbawas ng mga kahulugan at mga uri ng payo,,en,Manood at matuto,,en,Habang ang AOP ay tila isang magandang opsyon dahil sa aspeto ng re-usability ng mga alalahanin nito,,en,hindi ito walang problema nito,,en(..))”/>

<!– a before advice definition –>

<aop:before pointcut-ref=”aopbusinessService”

method=”doAOPTask”/>

<!– an after advice definition –>

<aop:after pointcut-ref=”aopbusinessService”

method=”doAOPTask”/>

<!– an after-returning advice definition –>

<!–The doAOPTask method must have parameter named aopVal –>

<aop:after-returning pointcut-ref=”aopbusinessService”

returning=”aopVal”

method=”doAOPTask”/>

<!– an after-throwing advice definition –>

<!–The doAOPTask method must have parameter named aopex –>

<aop:after-throwing pointcut-ref=”aopbusinessService”

throwing=”ex”

method=”doAOPTask”/>

<!– an around advice definition –>

<aop:around pointcut-ref=”aopbusinessService”

method=”doAOPTask”/> …

</aop:aspect>

</aop:config>

<bean id=”yBean” class=”…”>…

</bean>

As can be seen from the above example, all five advices were declared using the <aop:aspect> element.

When this code is executed, it will display the point cuts and the output at those points. The output will depend on the point cut definitions and the advice types.

You will also like to read – Spring with Testing frameworks – How does it work?

Spring video tutorials – Watch and learn








Konklusyon

While AOP seems to be a pretty good option because of the re-usability aspect of its concerns, it is not without its problems. One, ito ay maaaring isang isyu debugging isang balangkas na batay sa AOP code dahil ang mga klase ng negosyo ay pinapayuhan lamang matapos ang mga aspeto ay naka-configure,,en,Dalawa,,en,Ang mga payo ay maaaring ibigay lamang para sa mga pampublikong pamamaraan at hindi para sa mga pamamaraan na may default,,en,pribado o pampublikong kakayahang makita,,en,Ang AOP ay maaaring maging isang mahusay na opsyon dahil ito ay kumpleto sa OOP nang mahusay,,en,Galugarin ang mas kawili-wiling artikulo sa balangkas ng Spring,,en,techalpine.com/learn-spring-aop-in-30-minutes,,en. Two, Advise can be given only for public methods and not for methods with default, private or public visibility. Still, AOP can be a good option because it complements OOP so well.



Spring Archive – Explore more interesting articles on Spring framework

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share