资源描述
一,Spring 框架提供了构建 Web 应用程序全功能 MVC 模块,具备简朴性,可测试性和松耦合特点.使用JavaBean代替EJB.
Spring是一种轻量级控制反转IoC(Inversion of Control)和面向切面容器框架.
控制反转是容器控制程序,依赖注入是由容器动态将某种依赖关系注入到组件之中.依赖注入减轻了组件之间依赖关系,提高了组件之间可移植性.
依赖注入有三种方式:接口注入,设值办法注入,构造子注入.
Spring Web MVC 解决Http祈求大体过程:
一旦Http祈求到来,DispatcherSevlet负责将祈求分发。DispatcherServlet可以以为是Spring提供前端控制器,所有祈求均有通过它来统一分发。
在DispatcherServlet将祈求分发给Spring Controller之前,需要借助于Spring提供HandlerMapping定位到详细Controller。
HandlerMapping是这样一种对象,它可以完毕客户祈求到Controller之间映射。在Struts中,这种映射是通过struts-config.xml文献完毕。
其中,Spring为Controller接口提供了若干实现,例如Spring默认使用BeanNameUrlHandlerMapping。
尚有,SimpleUrlHandlerMapping,CommonsPathMapHandlerMapping。Spring Controller将解决来自DispatcherServlet祈求。
SpringController类似于strutsAction,可以接受HttpServletRequest和HttpServletResponse。Spring为Controller接口提供了若干实现类,位于org.springframework.web.servlet.mvc包中。由于Controller需要为并发顾客解决上述祈求,因而实现Controller接口时,
必要保证线程安全并且可重用。Controller将解决客户祈求,这和Struts Action 扮演角色是一致。
一旦Controller解决完客户祈求,则返回ModelAndView对象给DispatcherServlet前端控制器。ModelAndView中包括了模型(Model)和视图(View)。
从宏观角度考虑,DispatcherServlet是整个Web应用控制器;从微观角度考虑,Controller是单个Http祈求解决过程中控制器,
而ModelAndView是Http祈求过程中返回模型和视图。前端控制器返回视图可以是视图逻辑名,或者实现了View接口对象。
View对象可以渲染客户响应成果。其中,ModelAndView中模型可以供渲染View时使用。借助于Map对象可以存储模型。如果ModelAndView返回视图只是逻辑名,
则需要借助Spring提供视图解析器(ViewResoler)在Web应用中查找View对象,从而将响应成果渲染给客户。
DispatcherServlet将View对象渲染出成果返回个客户。
SpringMVC-mvc.xml 配备文献
<context:component-scan/> 扫描指定包中类上注解,惯用注解有:
@Controller 声明Action组件
@Service 声明Service组件 @Service("myMovieLister")
@Repository 声明Dao组件
@Component 泛指组件,当不好归类时.
@RequestMapping("/menu") 祈求映射
@Resource 用于注入,( j2ee提供 ) 默认按名称装配,@Resource(name="beanName")
@Autowired 用于注入,(srping提供) 默认按类型装配
@Transactional( rollbackFor={Exception.class}) 事务管理
@ResponseBody
@Scope("prototype") 设定bean作用域
Spring代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=""
xmlns:xsi=""
xmlns:tx=""
xmlns:context=""
xmlns:mvc=""
xsi:schemaLocation="
">
<!-- 自动扫描包名 -->
<context:component-scan base-package="com.app,com.core,JUnit4" ></context:component-scan>
<!-- 默认注解映射支持 -->
<mvc:annotation-driven />
<!-- 视图解释类 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/><!--可为空,以便实现自已根据扩展名来选取视图解释类逻辑 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
</bean>
<!-- 拦截器 -->
<mvc:interceptors>
<bean class="com.core.mvc.MyInteceptor" />
</mvc:interceptors>
<!-- 对静态资源文献访问 方案一 (二选一) -->
<mvc:default-servlet-handler/>
<!--激活TomcatdefaultServlet来解决静态文献-->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<!-- 对静态资源文献访问 方案二 (二选一)-->
<mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/>
<mvc:resources mapping="/js/**" location="/js/" cache-period="31556926"/>
<mvc:resources mapping="/css/**" location="/css/" cache-period="31556926"/>
</beans>
二,Struts2
struts2并不是一种陌生web框架,它是以Webwork设计思想为核心,吸取struts1长处,可以说
struts2是struts1和Webwork结合产物,在WebWork基本上构建MVC框架.
struts2工作原理图:
一种祈求在Struts2框架中解决分为如下几种环节:
1.客户端发出一种指向servlet容器祈求(tomcat);
2.这个祈求会通过图中几种过滤器,最后会到达FilterDispatcher过滤器。
3.过滤器FilterDispatcher是struts2框架心脏,在解决顾客祈求时,它和祈求一起互相配合访问struts2
底层框架构造。在web容器启动时,struts2框架会自动加载配备文献里有关参数,并转换成相应类。
如:ConfigurationManager、ActionMapper和ObjectFactory。ConfigurationManager 存有配备文献一
些基本信息,ActionMapper存有action配备信息。在祈求过程中所有对象(Action,Results,
Interceptors,等)都是通过ObjectFactory来创立。过滤器会通过询问ActionMapper类来查找祈求中
需要用到Action。
4.如果找到需要调用Action,过滤器会把祈求解决交给ActionProxy。ActionProxy为Action代理对象
。ActionProxy通过ConfigurationManager询问框架配备文献,找到需要调用Action类。
5.ActionProxy创立一种ActionInvocation实例。ActionInvocation在ActionProxy层之下,它表达了
Action执行状态,或者说它控制Action执行环节。它持有Action实例和所有Interceptor。
6.ActionInvocation实例使用命名模式来调用,1. ActionInvocation初始化时,依照配备,加载Action相
关所有Interceptor。2. 通过ActionInvocation.invoke办法调用Action实现时,执行Interceptor。在
调用Action过程先后,涉及到有关拦截器(intercepetor)调用。
7. 一旦Action执行完毕,ActionInvocation负责依照struts.xml中配备找到相应返回成果。返回成果
普通是(但不总是,也也许是此外一种Action链)一种需要被表达JSP或者FreeMarker模版。
四,Shiro
Shiro是Apache公司提供开源框架,用于解决身份认证,授权,公司会话加密.
Shiro提供功能有:验证顾客,对顾客执行访问控制,可以使用各种数据源,单点登录.
与Spring Security提供功能差不多.
Java运用Filter,Xml文献和顾客信息表配合使用来实现权限解决.
C语言指针表达:类型阐明符 * 函数名(参数) eg:int * getDate(int wk,int dy).
五,通讯合同
合同是用来描述进程之间信息互换过程术语.合同包括语义,语法,定期三某些.
语义规定了要讲得到内容,执行行动和返回应答.语法规定了如何去讲,数据传播和控制信息格式.定期规定了信息交流顺序.
物理层:物理设备之间接口连接,
数据链路层:在物理层比特流基本上,建立相邻节点之间数据链路.传送数据帧.
网络层:在通讯子网传播信息包或报文分组.
P2P:终端顾客之间传送数据不通过服务器技术.
端到端传播指链路建立后来,发送端发送数据,直到数据发送完毕,接受端接受成功.
长处是发送端懂得接受端一定可以接受到信息,网络传送延迟小.缺陷是挥霍资源.
点到点是指发送端把数据传播到其她相连设备,这台设备在适当时候可以讲数据传播到下一台相连设备.
长处是发送端发送数据后不必参加整个过程,不会导致资源挥霍,且虽然接受端关闭,点到点也可以实现.缺陷是发送端不懂得接受端与否已经接受到数据.
TCP/IP合同目是解决异种计算机之间网络通讯问题,为顾客提供通用始终通讯服务.
其重要提供两种服务:无连接报文分组递送服务和面向连接可靠数据流传送服务
子网掩码:拓宽了IP地址网络标记某些,将大网络分为几种小子网,有效运用了IP地址资源.通过路由器访问控制,路由定向,可以有效减轻网络交通拥挤.
IP路由:搜索路由,寻找与目IP地址,目网络号完全匹配表目.
传播层合同包括TCP合同和UDP合同.
TCP合同是一种可靠,面向连接合同.容许网络上两台主机无差错传播,TCP还进行流量控制,以避免因发生过快而发生拥挤,对顾客是透明.
UDP合同采用无连接方式,不论发送数据包与否到达目主机,与否出错,收到数据主机都不会告诉发送方与否精确.它可靠性是由上层合同来保障.
六,综合
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表映射关系,并将运营期实体对象持久化到数据库中。
JPA框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简朴持久化框架局限,在公司应用发挥更大作用。
JPA是原则,Hibernate是框架,JPA是SUN公司推出持久化规范(java persistens api),Hibernate只是实现了JPA而已.
公司资源筹划即ERP(Enterprise Resource Plan).公司资源筹划是指建立在信息技术基本上,以系统化管理思想,为公司决策层及员工提供决策运营手段管理平台。
ERP具备整合性、系统性、灵活性、实时控制性等明显特点。ERP系统供应链管理思想对公司提出了更高规定,是公司在信息化社会、在知识经济时代繁华发展核心管理模式。
数据运算是在数据逻辑构造上定义操作算法,如检索、插入、删除、更新和排序等。
数据构造是指同一数据元素类中各数据元素之间存在关系。数据构造分别为逻辑构造、存储构造(物理构造)和数据运算。
数据逻辑构造是对数据之间关系描述,有时就把逻辑构造简称为数据构造。
数组 (Array)
在程序设计中,为了解决以便, 把具备相似类型若干变量按有序形式组织起来。这些按序排列同类数据元素集合称为数组。
栈 (Stack)
是只能在某一端插入和删除特殊线性表。它按照先进后出原则存储数据,先进入数据被压入栈底,最后数据在栈顶,
需要读数据时候从栈顶开始弹出数据(最后一种数据被第一种读出来)。
队列 (Queue)
一种特殊线性表,它只容许在表前端(front)进行删除操作,而在表后端(rear)进行插入操作。
进行插入操作端称为队尾,进行删除操作端称为队头。
队列是按照“先进先出”或“后进后出”原则组织数据。
队列中没有元素时,称为空队列。
链表 (Linked List)
是一种物理存储单元上非持续、非顺序存储构造,它既可以表达线性构造,也可以用于表达非线性构造,数据元素逻辑顺序是通过链表中指针链接顺序实现。
链表由一系列结点(链表中每一种元素称为结点)构成,结点可以在运营时动态生成。
每个结点涉及两个某些:一种是存储数据元素数据域,另一种是存储下一种结点地址指针域。
树 (Tree)
是包括n(n>0)个结点有穷集合K,且在K中定义了一种关系N,N满足 如下条件:
(1)有且仅有一种结点 K0,她对于关系N来说没有前驱,称K0为树根结点。简称为根(root)。
(2)除K0外,K中每个结点,对于关系N来说有且仅有一种前驱。
(3)K中各结点,对关系N来说可以有m个后继(m>=0)。
图 (Graph)
图是由结点有穷集合V和边集合E构成。其中,为了与树形构造加以区别,在图构造中经常将结点称为顶点,边是顶点有序偶对,
若两个顶点之间存在一条边,就表达这两个顶点具备相邻关系。
堆 (Heap)
堆是一种特殊树形数据构造,每个结点均有一种值。普通咱们所说堆数据构造,是指二叉堆。
堆特点是根结点值最小(或最大),且根结点两个子树也是一种堆。
散列表 (Hash)
若构造中存在核心字和K相等记录,则必然在f(K)存储位置上。由此,不需比较便可直接获得所查记录。
称这个相应关系f为散列函数(Hash function),按这个思想建立表为散列表。
Spring是一种轻量级控制反转(IoC)和面向切面(AOP)Java 开发框架,
◆控制反转——Spring通过一种称作控制反转(IoC)技术增进了松耦合。当应用了IoC,一种对象依赖其他对象会通过被动方式传递进来,
而不是这个对象自己创立或者查找依赖对象。
你可以以为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象祈求就积极将依赖传递给它。
◆面向切面——Spring提供了面向切面编程丰富支持,容许通过度离应用业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性开发。
应用对象只实现它们应当做——完毕业务逻辑——仅此而已。它们并不负责(甚至是意识)其他系统级关注点,例如日记或事务支持。
Struts2
服务器启动后,依照web.xml加载ActionServlet读取struts-config.xml文献内容到内存。
struts可以清晰地区别控制,事务逻辑和外观,从而简化了开发应用程序过程。struts提供类使得开发工作更加简朴,这些类涉及:
Model某些
由JavaBean构成,ActionForm用于封装顾客祈求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action依照ActionForm里面祈求参数解决顾客祈求。
JavaBean则封装了底层业务逻辑,涉及数据库访问等。
View某些
该某些采用JSP实现。
Struts提供了丰富标签库,通过标签库可以减少脚本使用,自定义标签库可以实现与Model有效交互,并增长了现实功能。相应上图JSP某些。
Controller组件
Controller组件有两个某些构成——系统核心控制器,业务逻辑控制器。
系统核心控制器,相应上图ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因而可以配备成标注Servlet。
该控制器负责拦截所有HTTP祈求,然后依照顾客祈求决定与否要转给业务逻辑控制器。
业务逻辑控制器,负责解决顾客祈求,自身不具备解决能力,而是调用Model来完毕解决。相应Action某些。
struts2是struts1和Webwork结合产物。
struts2 工作原理图:
一种祈求在Struts2框架中解决分为如下几种环节:
1.客户端发出一种指向servlet容器祈求(tomcat);
2.这个祈求会通过图中几种过滤器,最后会到达FilterDispatcher过滤器。
3.过滤器FilterDispatcher是struts2框架心脏,在解决顾客祈求时,它和祈求一起互相配合访问struts2
底层框架构造。在web容器启动时,struts2框架会自动加载配备文献里有关参数,并转换成相应类。
如:ConfigurationManager、ActionMapper和ObjectFactory。ConfigurationManager 存有配备文献一
些基本信息,ActionMapper存有action配备信息。在祈求过程中所有对象(Action,Results,
Interceptors,等)都是通过ObjectFactory来创立。过滤器会通过询问ActionMapper类来查找祈求中
需要用到Action。
4.如果找到需要调用Action,过滤器会把祈求解决交给ActionProxy。ActionProxy为Action代理对象
。ActionProxy通过ConfigurationManager询问框架配备文献,找到需要调用Action类。
5.ActionProxy创立一种ActionInvocation实例。ActionInvocation在ActionProxy层之下,它表达了
Action执行状态,或者说它控制Action执行环节。它持有Action实例和所有Interceptor。
6.ActionInvocation实例使用命名模式来调用,1. ActionInvocation初始化时,依照配备,加载Action相
关所有Interceptor。2. 通过ActionInvocation.invoke办法调用Action实现时,执行Interceptor。在
调用Action过程先后,涉及到有关拦截器(intercepetor)调用。
7. 一旦Action执行完毕,ActionInvocation负责依照struts.xml中配备找到相应返回成果。返回成果
普通是(但不总是,也也许是此外一种Action链)一种需要被表达JSP或者FreeMarker模版。
Hibernate是一种开放源代码对象关系映射框架,它对JDBC进行了非常轻量级对象封装,使得Java程序员可以随心所欲使用对象编程思维来操纵数据库
运用PL/SQL Developer和BIEE开发工具.按业务部门给出有关映射规则,编写SQL语句和存储过程.从Linux服务器上读取数据.按银行业务类型提取数据并开发相应接口,将数据按缓冲层,整合层,应用层,产品层一步步导入,分类,整合.然后运用公司ETL平台按不同业务进行跑批操作.跑批时需要导入市场利率曲线,跑批完毕后会得到各个业务FTP定价成果集.最后,运用Oracle公司BIEE报表开发工具,按银行给出表格规范规定将数据以报表直观形式呈现出来.
IBM WebSphere 是因特网基本架构软件,也就是咱们所说中间件。它使公司可以开发、
布置和集成新一代电子商务应用(如 B2B 电子交易),并且支持从简朴 Web 发布
到公司级事务解决商务应用。WebSphere 转变了公司对客户、合伙伙伴及雇员之间关
系管理方式。例如您可以通过它提高站点传播数据数量和质量,从而大幅提高您
Web应用性能,并将扩展应用程序与移动设备相结合,让销售队伍可觉得客户提供
更快捷服务,或者构建电子市场以减少资源获取成本。
WebSphere Application Server 是一种基于 Java Web 应用程序服务器,它构建在
开放原则基本之上,能协助您布置与管理从简朴 Web 站点到强大电子商务解决方案
诸多应用程序。 它遵循 J2EE 并为 Java 组件、XML 和 Web 服务提供了一种可移植 Web布置平台,这个平台可以与数据库交互并提供动态 Web 内容。
WebLobic Server 是美国BEA公司开发一种业界领先应用服务器。
一、Spring MVC工作原理
1. 客户端祈求提交到DispatcherServlet
2. 由DispatcherServlet控制器查询一种或各种HandlerMapping,找到解决祈求Controller
3. DispatcherServlet将祈求提交到Controller
4. Controller调用业务逻辑解决后,返回ModelAndView
5. DispatcherServlet查询一种或各种ViewResoler视图解析器,找到ModelAndView指定视图
6. 视图负责将成果显示到客户端
二、为什么要用Spring
1、Spring能较好与各大框架进行集成
2、创立对象时,如果咱们不用spring需要用工厂模式来创立,这个spring相称于工厂模式已经帮咱们做了创立对象功能(IOC、依赖注入)。
3、在用Hibernate时候,如果不用spring每次都要写事务提交代码,有了spring可以通过AOP协助咱们管理事务
4、面向切面编程(AOP)在要记录日记时候添加一条记录后需要在数据里同步添加一条添加成功了或失败记录,那么就可以用SpringAop来解决,虽然不用Aop也能做但是不用SpringAop就会写诸多重复代码。
三、请你谈谈SSH整合
SSH:Struts(表达层)+Hibernate(持久层)+Spring(业务层)
a、Struts
Struts是一种表达层框架,重要作用是界面展示,接受祈求,分发祈求。
b、Hibernate
Hibernate是一种持久层框架,它只负责与关系数据库操作。
c、Spring
Spring是一种业务层框架,是一种整合框架,可以较好地黏合表达层与持久层。
四、简介一下Spring事务管理
事务就是对一系列数据库操作(例如插入多条数据)进行统一提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条浮现异常,那么回滚之前所有操作。这样可以防止浮现脏数据,防止数据库数据浮现问题。
开发中为了避免这种状况普通都会进行事务管理。Spring中也有自己事务管理机制,普通是使用TransactionMananger进行管理,可以通过Spring注入来完毕此功能。
五、什么是依赖注入,依赖注入作用是什么?
IOC是一种思想,它能指引咱们如何设计出松耦合、更优良程序。老式应用程序都是由咱们在类内部积极创立依赖对象,从而导致类与类之间高耦合,难于测试;有了IOC容器后,把创立和查找依赖对象控制权交给了容器,由容器进行注入组合对象,因此对象与对象之间是松散耦合,这样也以便测试,利于功能复用,更重要是使得程序整个体系构造变得非常灵活。
依赖注入作用:减少类间耦合度,避免用new来创立对象
六、什么是AOP,AOP作用是什么?
AOP,面向切面编程,就是把可重用功能提取出来,然后将这些通用功能在适当时候织入到应用程序中,例如事务管理、权限控制、日记记录、性能记录等。
AOP作用
AOP并没有协助咱们解决任何新问题,它只是提供了一种更好办法,可以用更少工作量来解决既有某些问题,使得系统更加健壮,可维护性更好。
七、Spring中BeanFactory与ApplicationContext作用有哪些?
1、BeanFactory负责读取bean配备文献,管理bean加载、实例化,维护bean之间依赖关系,负责bean生命周期。
2、ApplicationContext除了提供上述BeanFactory所能提供功能之外,还提供了更完整框架功能:
a. 国际化支持
b. 资源访问
c. 事件传递
八、连接池
c3p0、dbcp
九、跨库事务
Atomikos、jotm
展开阅读全文