• 基础概念总结(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一段时间就行了
     
  • 相关阅读:
    Install Jetty web server on CentOS 7 / RHEL 7
    Linux MYSQL:dead but pid file exists
    Tomcat7注册为Linux服务
    CentOS查看版本及架构信息
    CentOS(6.8)7 安装 Mysql 5.7
    CentOS7 截图
    Kitematic when login show Error:Tunning socket could not be established
    Installing and removing VNC Connect | Red Hat | VNC Connect
    使用 Nexus Repository Manager 搭建私有docker仓库
    Docker attach
  • 原文地址:https://www.cnblogs.com/huapox/p/3516349.html
Copyright © 2020-2023  润新知