尚硅谷_JavaEE 面试_第1页
尚硅谷_JavaEE 面试_第2页
尚硅谷_JavaEE 面试_第3页
尚硅谷_JavaEE 面试_第4页
尚硅谷_JavaEE 面试_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

除了SSH以外还要会什么?,提要,Struts2面试问题Hibernate面试问题SpringFilter(过滤器)也是一种AOP.AOP是一种新的方法论,是对传统OOP(Object-OrientedProgramming,面向对象编程)的补充.AOP的主要编程对象是切面(aspect),而切面模块化横切关注点.可以举例通过事务说明.IOC:InvertOfControl,控制反转.也成为DI(依赖注入)其思想是反转资源获取的方向.传统的资源查找方式要求组件向容器发起请求查找资源.作为回应,容器适时的返回资源.而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源.这种行为也被称为查找的被动形式,在Spring中如何配置Bean?,Bean的配置方式:通过全类名(反射)、通过工厂方法(静态工厂方法&实例工厂方法)、FactoryBean,IOC容器对Bean的生命周期,.通过构造器或工厂方法创建Bean实例.为Bean的属性设置值和对其他Bean的引用.将Bean实例传递给Bean前置处理器的postProcessBeforeInitialization方法.调用Bean的初始化方法(init-method).将Bean实例传递给Bean后置处理器的postProcessAfterInitialization方法.Bean可以使用了.当容器关闭时,调用Bean的销毁方法(destroy-method),说一下struts2-hibernate-Spring的工作流程?,1).Struts2负责显示页面和接受请求2).Spring的IOC容器管理各个组件:整合Struts2,Hibernate和其他组件,AOP完成声明式事务3).Hibernate提供DAO操作.,Spring如何整合Struts2?,整合Struts2,即由IOC容器管理Struts2的Action:安装Spring插件:把struts2-spring-plugin-2.2.1.jar复制到当前WEB应用的WEB-INF/lib目录下在Spring的配置文件中配置Struts2的Action实例在Struts配置文件中配置action,但其class属性不再指向该Action的实现类,而是指向Spring容器中Action实例的ID,Spring如何整合Hibernate,整合Hibernate,即由IOC容器生成SessionFactory对象,并使用Spring的声明式事务利用LocalSessionFactoryBean工厂Bean,声明一个使用XML映射文件的SessionFactory实例.利用HibernateTransactionManager配置Hibernate的事务管理器,SpringMVC比较Struts2,.SpringMVC的入口是Servlet,而Struts2是Filter.SpringMVC会稍微比Struts2快些.SpringMVC是基于方法设计,而Sturts2是基于类,每次发一次请求都会实例一个Action.SpringMVC使用更加简洁,开发效率SpringMVC确实比struts2高:支持JSR303,处理ajax的请求更方便.Struts2的OGNL表达式使页面的开发效率相比SpringMVC更高些.,SpringMVC的运行流程,.在整个SpringMVC框架中,DispatcherServlet处于核心位置,负责协调和组织不同组件以完成请求处理并返回响应的工作.SpringMVC处理请求过程:若一个请求匹配DispatcherServlet的请求映射路径(在web.xml中指定),WEB容器将该请求转交给DispatcherServlet处理DispatcherServlet接收到请求后,将根据请求信息(包括URL、HTTP方法、请求头、请求参数、Cookie等)及HandlerMapping的配置找到处理请求的处理器(Handler).可将HandlerMapping看成路由控制器,将Handler看成目标主机。当DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。处理器完成业务逻辑的处理后将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和模型数据信息DispatcherServlet借助ViewResoler完成逻辑视图名到真实视图对象的解析得到真实视图对象View后,DispatcherServlet使用这个View对ModelAndView中的模型数据进行视图渲染,SpringMVC运行流程,说出SpringMVC常用的5个注解,RequestMapping、PathVariable、RequestParam、RequestBoy、ResponseBody,如何使用SpringMVC完成JSON操作,.配置MappingJacksonHttpMessageConverter.使用RequestBody注解或ResponseEntity作为返回值,比较SpringSecurity和Shiro,相比SpringSecurity,Shiro在保持强大功能的同时,使用简单性和灵活性SpringSecurity:即使是一个一个简单的请求,最少得经过它的8个FilterSpringSecurity必须在Spring的环境下使用初学SpringSecurity,曲线还是较大,需要深入学习其源码和框架,配置起来也较费力.,Shiro的优点,简单的身份认证,支持多种数据源对角色的简单的授权,支持细粒度的授权(方法级)支持一级缓存,以提升应用程序的性能;内置的基于POJO企业会话管理,适用于Web以及非Web的环境非常简单的加密API不跟任何的框架或者容器捆绑,可以独立运行,简述Shiro的核心组件,Shiro架构3个核心组件:Subject:正与系统进行交互的人,或某一个第三方服务.所有Subject实例都被绑定到(且这是必须的)一个SecurityManager上。SecurityManager:Shiro架构的心脏,用来协调内部各安全组件,管理内部组件实例,并通过它来提供安全管理的各种服务.当Shiro与一个Subject进行交互时,实质上是幕后的SecurityManager处理所有繁重的Subject安全操作。Realms:本质上是一个特定安全的DAO.当配置Shiro时,必须指定至少一个Realm用来进行身份验证和/或授权.Shiro提供了多种可用的Realms来获取安全相关的数据.如关系数据库(JDBC),INI及属性文件等.可以定义自己Realm实现来代表自定义的数据源。,Shiro认证过程,.应用程序代码调用Subject.login方法,传递创建好的包含终端用户的Principals(身份)和Credentials(凭证)的AuthenticationToken实例.Subject实例:通常为DelegatingSubject(或子类)委托应用程序的SecurityManager通过调用securityManager.login(token)开始真正的验证。.SubjectManager接收token,调用内部的Authenticator实例调用authenticator.authenticate(token).Authenticator通常是一个ModularRealmAuthenticator实例,支持在身份验证中协调一个或多个Realm实例.如果应用程序中配置了一个以上的Realm,ModularRealmAuthenticator实例将利用配置好的AuthenticationStrategy来启动Multi-Realm认证尝试.在Realms被身份验证调用之前,期间和以后,AuthenticationStrategy被调用使其能够对每个Realm的结果作出反应.每个配置的Realm用来帮助看它是否支持提交的AuthenticationToken.如果支持,那么支持Realm的getAuthenticationInfo方法将会伴随着提交的token被调用.getAuthenticationInfo方法有效地代表一个特定Realm的单一的身份验证尝试。,认证过程,Shiro授权过程,.应用程序或框架代码调用任何Subject的hasRole*,checkRole*,isPermitted*,或者checkPermission*方法的变体,传递任何所需的权限.Subject的实例通常是DelegatingSubject(或子类),调用securityManager的对应的方法.SecurityManager调用org.apache.shiro.authz.Authorizer接口的对应方法.默认情况下,authorizer实例是一个ModularRealmAuthorizer实例,它支持协调任何授权操作过程中的一个或多个Realm实例.每个配置好的Realm被检查是否实现了相同的Authorizer接口.如果是,Realm各自的hasRole*,checkRole*,isPermitted*,或checkPermission*方法将被调用。,授权的顺序,Shiro如何自实现认证,Shiro的认证过程由Realm执行,SecurityManager会调用org.apache.shiro.realm.Realm的getAuthenticationInfo(AuthenticationTokentoken)方法.实际开发中,通常提供org.apache.shiro.realm.AuthenticatingRealm的实现类,并在该实现类中提供doGetAuthenticationInfo(AuthenticationTokentoken)方法的具体实现,如何实现自实现授权,实际开发中,通常提供org.apache.shiro.realm.AuthorizingRealm的实现类,并提供doGetAuthorizationInfo(PrincipalCollectionprincipals)方法的具体实现,如何配置在Spring中配置使用Shiro,.在web.xml中配置Shiro的Filter.在Spring的配置文件中配置Shiro:配置自定义Realm:实现自定义认证和授权配置Shiro实体类使用的缓存策略配置SecurityManager配置保证Shiro内部Bean声明周期都得到执行的LifecycleBean后置处理器配置AOP式方法级权限检查配置ShiroFilter,SpringData:为某一个特定Repository添加自定义方法。,1)定义一个接口:声明要添加的方法2)提供该接口的实现类:类名需符合EntityNameRepositoryImpl格式,并提供方法的实现3)声明一个Repository接口,并继承1)声明的接口4)使用5)注意:默认情况下,SpringData会在base-package中查找接口名Impl“作为实现类.也可以通过repository-impl-postfix声明后缀,为所有的Repository添加自定义的方法,1)声明一个接口,在该接口中声明需要自定义的方法,该接口需要继承

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论