基础概念总结(spring security、Quartz、JUnit测试)
生活随笔
收集整理的這篇文章主要介紹了
基础概念总结(spring security、Quartz、JUnit测试)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、Spring Security 的大體框架和原理 (1)在web.xml中配置過濾器,這樣就可以控制這個項目的每個請求。? (2)在applicationContext.xml配置,其中http標簽配置如何截用戶請求,和配置用戶認證(固定用戶、使用數據庫管理用戶)。? (3)過濾器最上層為HttpSessionContextIntegrationFilter、然后是LogoutFilter? (4)spring security中重要的類SecurityContextHolder提供幾種訪問SecurityContext的方式;SecurityContext,保存Authentication信息,和請求對應的安全信息;Authentication,展示Spring Security特定的主體? (5)以登陸和退出為例說明,登陸成功后通過認證,認證信息保存到securityContext中并給holder。并可以通過String id= SecurityContextHolder.getContext().getAuthentication().getName(); 取出用戶信息。退出時則清空securityContextHolder。? 原理:可以理解為通過過濾/認證體系來保護系統資源。? 2、spring Quartz 工作框架原理 (1)spring對Quartz的再次封裝。? (2)scheduler是一個計劃調度器容器,容器里面可以盛放眾多的JobDetail和trigger,當容器啟動后,里面的每個JobDetail都會根據trigger按部就班自動去執行。? (3)JobDetail是一個可執行的工作。? (4)Trigger代表何時去調用計劃。? (5)scheduler是個容器,容器中有一個線程池,用來并行調度執行每個作業,這樣可以提高容器效。? (6)Quartz容器的關閉方式也很簡單,如果是Spring整合,則有兩種方法,一種是關閉Spring容器,一種是獲取到SchedulerFactoryBean實例,然后調用一個shutdown就搞定了。如果是Quartz獨立使用,則直接調用scheduler.shutdown(true);? 3、JUnit測試 (1)作為unit test的工具。? (2)新建 unit test case。? (3)測試開始 -> setUp(初始化) -> testXXXX -> tearDown(撤銷初始化) ->測試結束? 4、設計模式種類 (1)策略模式:封裝變化。? (2)觀察者模式:多個觀察者同時監聽同一個被觀察對象。? (3)裝飾者模式:應對擴展的一種模式。? (4)工廠模式:責將大量有共同接口的類實例化。? (5)單態模式:確保每個類只有一個實例,并提供它的全局訪問點。? (6)適配器模式:適配器類需要實現目標接口。? (7)外觀模式:提供了一個統一的接口,用來訪問子系統中的一群接口。? (8)模板方法模式:定義一個算法的骨架,將變化步驟重新封裝。? (9)代理模式:略。? 大約有十幾種。? 5、swing概況 (1)GUI開發包? (2)swting設計模式為MVC,一個GUI組件對應著一個MVC體系。例如JTable,MVC 就是 TableModel JTable TableUI.? 6、XML開發? (1)使用dom4j產生xml字串? (2)使用digester解析xml到bean對象? ********************************************* 在web.xml里面配置多個Spring的applicationContext文件 <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-*.xml</param-value> </context-param> 在web.xml文件里面添加以上代碼。只要將以applicationContext-開頭的xml文件放到src目錄之下就可以了。 一般有applicationContext-service.xml和applicationContext-dao.xml。 如果有多個applicationContext配置文件的話用逗號隔開,例如: <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-*.xml,classpath:myBeans.xml</param-value> </context-param> ********************************************* RunWith(Suite.class) 誰知道RunWith的用法沒?? 代碼:? @RunWith(SpringJUnit4ClassRunner.class)? @ContextConfiguration({"classpath*:spring/applicationContext*.xml"})? public abstract class AbstractTransactionalTest extends AbstractTransactionalJUnit4SpringContextTests {? }? ----------------------------------------- 在使用所有注釋前必須使用@RunWith(SpringJUnit4ClassRunner.class),讓測試運行于Spring測試環境? Spring框架在org.springframework.test.annotation 包中提供了常用的Spring特定的注解集,如果你在Java5或以上版本開發,可以在測試中使用它。? ********************************************* 用junit測試quartz,無法正常運行 7先生 回答于 2012-10-22 18:15 因為junit不能測試多線程的東西,而quartz是在線程中去執行的。所以不能。涉及到線程的測試最好用main函數去測試,或者使用GroboUtils等支持多線程的框架+junit,具體可以百度一下GroboUtils+junit即可? FutureTime 回答于 2012-11-16 16:10 可以把當前junit的方法sleep一段時間就行了
總結
以上是生活随笔為你收集整理的基础概念总结(spring security、Quartz、JUnit测试)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Ioc (Inversio
- 下一篇: C#ASP.NET执行BAT批处理代码