您好,我是Annotation和Spring AOP的新手。下面是我想實現使用Spring AOP 3.1.0使用方法參數設置服務實例
public interface Service {
public void process(String ServiceName, Bean bean);
}
public class ServiceImpl1 implements Service{
public void process(String ServiceName, Bean bean) {
/// do something here
}
}
public class ServiceImpl2 implements Service{
public void process(String ServiceName, Bean bean) {
/// do something here
}
}
從其他類
我會用AroundAdvice和建議之前被調用類似
...
public void doSomething(String serviceName, Bean bean){
service.process("ServiceImpl1", bean);
}
...
我可以達到同樣的和攔截我DoSomething的方法,然後實例讀取serviceName後的服務對象。
我有更好的方法呢?
我只是需要一個方向,然後我會解決這個問題。
感謝
是的,我試圖用AOP來實現這一點。我已經有了一個工廠模式。 – user1720707 2013-02-22 14:24:57
我不知道,這似乎應該是一本反模式的書。在您的場景中,您可以創建ServiceImpl1的實例,但使用AOP最終會調用ServiceImpl2上的方法。更不用說,選擇是基於傳入該方法的一些任意字符串。各種各樣的警報都在我腦海中消失。這不僅似乎不太安全,但我無法想象試圖支持這一點。不管怎樣,真正購買你的是那些更爲完善的模式不能做到的? – CodeChimp 2013-02-22 14:55:03
正如我已經提到,我正在尋找更好的方法,如果這不是一個,我已經有工廠實施。如果有更清晰的註解方法,那麼爲什麼不呢?如果這不安全,你能解釋爲什麼這不是嗎? – user1720707 2013-02-22 16:34:51