註解配置業務類
使用@component("s") 註解productservice 類
package註解配置切面com.how2j**a.service;
import
org.springframework.stereotype.component;
@component(
"s")
public
class
productservice
}
@aspect 註解表示這是乙個切面
@component 表示這是乙個bean,由spring進行管理
@around(value = "execution(* com.how2j**a.service.productservice.*(..))") 表示對com.how2j**a.service.productservice 這個類中的所有方法進行切面操作
packagespringconfig.xmlcom.how2j**a.aspect;
import
org.aspectj.lang.proceedingjoinpoint;
import
org.aspectj.lang.annotation.around;
import
org.aspectj.lang.annotation.aspect;
import
org.springframework.stereotype.component;
@aspect
@component
public
class
loggeraspect
}
去掉原有資訊,新增如下3行
package="com.how2j**a.aspect"/>掃瞄包com.how2j**a.aspect和com.how2j**a.service,定位業務類和切面類 找到被註解了的切面類,進行切面配置package="com.how2j**a.service"/>
<?xml version="1.0" encoding="utf-8"?>測試執行xmlns:xsi="" xmlns:aop=""xmlns:context=""xsi:schemalocation="
/spring-beans.xsd
/spring-aop.xsd
/spring-context.xsd">
在how2j **學習spring框架時,發現有網友留了一些問題,這裡我們拿出來分享一下
1. 為什麼用註解方式跑程式比用xml配置要慢?
xml檔案的形式,系統只需要解析xml檔案中的內容,你需要自己去管理xml檔案。而註解最終要呼叫反射,反射很耗時間的,換來的是不需要去管理xml檔案,二者各有優缺點,看情況選擇合適的方式。
2. 假如乙個業務有兩個切面如何區分先後順序?(比較重要)
使用xml配置的時候,在定義切面時,如果通知的型別相同,可以加上order定義多個切面的執行順序,這裡有兩種情況:
order="1">上面的通知型別都是before,order的數值越小越先執行!!!before pointcut-ref="loggercutpoint" method="log"/>
order="2">
before pointcut-ref="loggercutpoint" method="log"/>
order="1">上面的通知型別都是after,order的數值越大越先執行!!!after pointcut-ref="loggercutpoint" method="log"/>
order="2">
after pointcut-ref="loggercutpoint" method="log"/>
在定義切面時,如果通知的型別不同,則無論怎樣定義order都無法決定多個切面的執行順序
order="1">after pointcut-ref="loggercutpoint" method="log"/>
order="2">這種情況切面的執行順序是按通知的型別決定的!!!before pointcut-ref="loggercutpoint" method="log"/>
用註解的方式定義切面,執行的先後順序其原理和xml配置一樣。
3. 如何把乙個切面織入兩個不同的業務類中?
可在切面中加入
@around(value = "execution(* com.j**a.productservice.*(..)) || execution(* com.j**a.service.productservice2.*(..))")如果分開寫,會報錯,例如
@around(value = "execution(* com.j**a.productservice.*(..))"@around(value = "execution(* com.j**a.productservice2.*(..))"
Spring學習 註解 四)
一 屬性依賴注入 依賴注入方式 手動裝配 和 自動裝配 手動裝配 一般進行配置資訊都採用手動 基於xml裝配 構造方法,setter方法 基於註解裝配 自動裝配 struts和spring整合可以自動裝配 bytype 按型別裝配 byname 按名稱裝配 constructor 構造裝配 anto...
Spring框架註解的學習
1.restcontroller 相當於 controller responsebody 4.0重要的乙個新的改進是 restcontroller註解,它繼承自 controller註解。4.0之前的版本,spring mvc的元件都使用 controller來標識當前類是乙個控制器servlet。...
spring學習 二 註解方式
告訴spring用註解方式配置 product類的category屬性新增註解 註解方式一 autowired private category category 註解方式二 resource name c private category category 與之前相同 全部刪除,只新加一行即可,瀏...