什麼這些下面的區別...AOP VS春季安全
@org.aspectj.lang.annotation.Aspect
public class Test {
//@Pointcut, @Around etc etc..
}
而且
public aspect Test {
}
,什麼是更好的中..
- 春季使用安全安全&
- AOP
什麼這些下面的區別...AOP VS春季安全
@org.aspectj.lang.annotation.Aspect
public class Test {
//@Pointcut, @Around etc etc..
}
而且
public aspect Test {
}
,什麼是更好的中..
檢查here
看點聲明由 org.aspectj.lang.annotation.Aspect註釋支持。聲明:
@Aspect public class Foo {}
等同於:
public aspect Foo {}
注意:第一種是彈簧檢測。後者需要AspectJ。
並針對第二個問題。比較是不可能的。因爲第一個是一個框架,後者是一個範例。 Spring安全使用AOP來保護方法調用,AOP本身不是一種安全機制。當然,除非你正在使用AOP構建自己的安全性,AOP正在重新發明輪子。
標記與@Aspect
註解類Test
會讓你的類的看點,意味着春天的ApplicationContext
或BeanFactory
現在將讀取並掃描您的班級找advices
,pointcuts
,joinpoints
,你可以定義你的額外cross-cutting functinality
(功能你保持獨立從你的業務邏輯)你想得到執行某些事件之前像一個方法調用之前,方法調用後,方法拋出一個異常等
AOP (Aspect-oriented programming)
是設計模式,彈簧之後,以提供您的交叉功能而Spring Security
是完整的彈簧框架的一部分工作,您可以使用它來保護您的應用程序
Spring Security內部使用AOP和過濾器來完成其工作。
第一個是註釋式語法,可以被Spring AOP和純AspectJ使用,第二個是本地AspectJ語法,只能在純AspectJ中使用,而不能在基於代理的Spring AOP中使用。但是,純粹的AspectJ(由AspectJ編譯器編譯)也可以併入到Spring項目中,如Spring手冊的章節Using AspectJ with Spring applications所述。
至於哪種方法更適合實現安全性,只要你沒有詳細描述你的用例,這就是一個哲學問題,但我的一般建議是:如果你仍然使用Spring框架,使用其安全機制。如果您只考慮使用Spring,因爲您想使用Spring AOP,我寧願建議您遠離僅用於單一用途的大型框架,並在您的POJO應用程序中使用純粹的AspectJ來實現安全性。
這意味着如果我想自己定製我的安全部分,那麼Core AOP更好。爲了獲得有序的代碼,Spring Security Framework很好,不是嗎? –
Spring是一款全面的安全套裝...它可以支持各種用例,所以我建議你查看文檔。 要創建一個功能安全性,您需要比AOP更多的功能,AOP幾乎不會攔截方法調用。保護需要更多。 你可以自己創建過濾器,提供者,控制器......但是爲什麼? Spring Security被用於保護各種項目,包括金融系統。 –
當然,我會讀出Spring Security Doc。順便說一句,那Struts呢!我可以在我現有的struts1項目中使用AOP嗎? –