
【SSH】
文章平均质量分 81
yysx
努力就有收获自信才有未来
展开
-
Spring两种拦截器类型介绍
1.分类HandlerInterceptor:拦截请求地址,比后者先执行。类似过滤器。MethodInterceptor:拦截指定类型的方法,通过动态代理模式实现。2.HandlerInterceptor1)拦截器实现一个HandlerInterceptor拦截器可以直接实现HandlerInterceptor接口,也可以继承HandlerInterceptorAdapter类。2)拦截器链提供了添加拦截器方法,以及遍历执行拦截器接口几个方法的实现。public class Hand原创 2020-11-13 14:42:45 · 1526 阅读 · 0 评论 -
Servlet过滤器源码分析
1.概述Servlet过滤器是服务端和客户端请求与响应的中间层组件,可以进行过滤请求,处理完毕后再转给下一个资源。在实际场景中,可能需要多个过滤器。即采用了过滤器链的方式来组织,如图所示。2. 源码相关先看几个主要的源码类Filterpublic interface Filter { public void init(FilterConfig filterConfig) throws ServletException; public void doFilter(Servle原创 2020-11-10 10:30:25 · 455 阅读 · 0 评论 -
SpringBoot整合Mybatis
整合项目包结构如下图所示:1、pom文件project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://mav原创 2016-12-27 20:41:18 · 4507 阅读 · 2 评论 -
SpringData——HelloWorld
1、背景最开始了解SpringData的时候,以为他不就是ORM的一种实现方式嘛,还能有什么新的东西。从hibernate到ibatis、mybatis,也许他只不过是spring想整合一个更方便的orm实现吧。NoNoNo!!!SpringData是希望提供一个统一的数据访问层的编程模型。如何理解呢?就拿SpringData中一个典型项目Spring Data MongoDB来说吧。之前我们用的h原创 2016-12-28 11:16:37 · 841 阅读 · 4 评论 -
SpringCloud——Eureka服务注册和发现
一、SpringCloud和Dubbo二、Demo今天介绍的服务发现是在SpringCloud的子项目Netflix中,除此之外,他还提供了熔断器、负载均衡、智能路由等,之后会介绍到。和往常一样,我们先来实现这个实例,然后再分析。这里,我们需要一个服务注册中心(即下面例子中的eureka-server)和一个服务的提供方(eureka-provider)。1、服务注册中心1)、引入pom文件<!--原创 2017-01-18 15:00:11 · 63493 阅读 · 11 评论 -
Eureka Server Replicate
为了方便说明,就把上篇博客的图再贴一遍了。上篇说道原创 2017-02-22 13:26:50 · 2402 阅读 · 2 评论 -
SpringCloud——服务网关
上篇博客《SpringCloud——Eureka服务注册和发现》中介绍了注册中心Eureka、服务提供者和服务消费者。这篇博客我们将介绍服务网关。图(1) 未使用服务网关的做法 图(2) 服务网关的做法 服务网关,英文Service GateWay,他是微服务框架中唯一的入口。有些类似外观模式,对外只提供一个访问的入口。这样做的好处有很多,减少了客户端多次调用微服务,也可以在“入口原创 2017-01-25 14:21:52 · 10958 阅读 · 3 评论 -
Ribbon源码解析
SpringCloud中的Ribbon开源项目,提供了客户端的负载均衡算法。这篇文章,我们来介绍下他是如何实现的。为了方便理解,我们以客户端调用的流程来介绍,其中会穿插介绍相关源代码。简单回顾下Ribbon的使用,这里强调两点: 1、在启动类Application中,添加@LoadBalanced注解。@Bean @LoadBalanced RestTemplate re原创 2017-02-23 16:33:48 · 1318 阅读 · 1 评论 -
Node.js系列——(3)连接DB
背景node.js,有人称之为运行在服务器端的JavaScript。以往我们使用JavaScript时,都是依赖后端查询数据库并返回数据,而JavaScript只需要展示即可。问题来了,就不能绕开后端直接查询数据库吗?答案是肯定的。关系型——以mysql操作为例node.js提供了mysql操作的驱动(模块),如果还未安装,需要执行 cnpm install mysql命令来安装。//引入模块va原创 2017-05-02 13:50:24 · 1054 阅读 · 0 评论 -
Node.js系列——(4)优势及场景
背景之前几篇系列文章简单介绍了node.js的安装配置及基本操作: Node.js系列——(1)安装配置与基本使用 Node.js系列——(2)发起get/post请求 Node.js系列——(3)连接DB接下来,我们就来整体认识下node.jsnode.jsnode.js官网对它的介绍是这样的: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。原创 2017-05-05 11:43:20 · 713 阅读 · 0 评论 -
Node.js系列——(1)安装配置与基本使用
1、安装进入下载地址 小编下载的是msi文件,下一步下一步傻瓜式安装。 打印个hello看看: 2、REPL全称Read Eval Print Loop,即交互式解释器,可以执行读取、执行、打印、循环等任务。在该环境下,我们可以在终端输入命令,并接收系统的响应。 输入node命令,进入终端:1、基本运算数字运算 变量运算 循环 2、常用命令Ctrl+C原创 2017-04-24 15:01:45 · 560 阅读 · 0 评论 -
Node.js系列——(2)发起get/post请求
服务器与浏览器的交互主要方式有get/post请求。 下面,我们来看一下node.js发起get/post请求。1、get由于get请求的参数在url后面,所以相对比较简单。node.js中的url模块提供了parse函数来处理。具体代码如下://引入模块var http=require('http');var url=require('url');var util=require('uti原创 2017-04-27 14:52:55 · 946 阅读 · 0 评论 -
SSH答疑解惑系列(三)——Struts2的异常处理
1原创 2016-01-08 14:26:49 · 1407 阅读 · 8 评论 -
【SSH】——封装参数不确定的分页查询
【小结】 首先,本文中的分页属于真分页。真分页的原则是显示什么查什么,而假分页是将所有的数据全部查出来,再前台控制数据的显示,这样性能会很差。在小编看来一般项目中,应用真分页的情况比较多一些。 在项目中,像分页、连接数据库、sql的增删改查等操作都可以考虑抽出一个工具类来做,其他业务上需要使用,直接拿来用就可以。以分页为例,在业务需求增多,查询难度加大的情况下,可采用拼接sql的方式来完成分页,在拼接时,要考虑是否不易出错,程序健壮性如何等问题。原创 2015-12-05 14:18:50 · 1736 阅读 · 29 评论 -
【SSH】——spring的控制反转和依赖注入
小结: 通过控制反转,我们将类与类之间的关系,对象的生成放到了配置文件中,这样既在一定程度上实现了解耦,也使得改变更加容易。原创 2015-10-04 16:37:36 · 1630 阅读 · 7 评论 -
【SSH】——两种添加jar包方式的比较
方法一:将所需要的jar包拷到本项目下的lib文件夹下,方法二:新建一个Library选中项目,右键Properties。原创 2015-11-05 17:49:43 · 2170 阅读 · 10 评论 -
【SSH】——梳理三大框架
Struts,是整个系统的基础架构,实现了MVC的分离,主要用在MVC的视图层,控制转发。 Hibernate对JDBC进行了封装,使得开发人员可以用面向对象等程序思维来操纵数据库,如Hibernate提供自动建表,我们只需要编写类,而不需要关心表的内部结构和生成过程。原创 2015-10-10 15:17:56 · 3959 阅读 · 34 评论 -
【SSH】——Hibernate实现简单的自动建表
【与ORM】 Object Relational Mapping,对象关系映射,将对象和关系联系了起来。面向对象是从耦合、聚合、封装等的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生,这样开发人员就可以以面向对象的思想来操作数据库。 实现ORM技术的框架有很多,.net的有NHibe原创 2015-10-12 20:23:58 · 12215 阅读 · 15 评论 -
【SSH】——Struts2中的动态方法调用(二)
当action中的方法有很多时,那应该怎么调用呢?上次我们提到的UserAction类中只有一个execute方法,如果我们需要增加用户的增删改查方法,如下:public class UserAction extends ActionSupport{ ...其他略去 /** * 添加用户的方法 * @return * @throws Exception */ pu原创 2015-09-24 08:35:10 · 1585 阅读 · 25 评论 -
【SSH】——Struts2中的动态方法调用(一)
首先我们来看一个简单的调用:1、在web.xml中配置拦截器StrutsPrepareAndExecuteFilter。StrutsPrepareAndExecuteFilter实现了filter接口,在执行action之前,利用filter做一些操作。 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPr原创 2015-09-19 17:18:38 · 1009 阅读 · 11 评论 -
【SSH】——hql的使用方式及实现原理
hql,即Hibernate Query Language。它与我们熟知的sql很类似,它最大的特点就是对查询进行了面向对象的封装,下面会在具体例子中说明。 sql查询的是数据库中的表或字段,而hql是面向对象的,具有继承、多态、关联等特性,他针对的是对象。原创 2015-10-28 10:53:38 · 3747 阅读 · 12 评论 -
【工具学习】——教你读懂Maven的配置文件
1、全局的setting文件是对所有项目的配置,他的存在,保证了项目团队开发的一致性设定。 2、而对于项目内的特殊配置,需要使用用户级别的配置文件来实现。在Windows系统中,通常存在于C盘的用户目录下.m2/settings下,如:C:\Users\YANG\.m2原创 2015-12-15 09:34:27 · 1931 阅读 · 16 评论 -
SSH答疑解惑系列(一)——spring容器是如何启动的
在实现Struts的小demo的时候,我们在地址栏输入http://localhost:8080/OA/userSave.action 后,就可以跳转到Action包中的UserAction中,那么这是如何实现的呢?在项目的web.xml中,整合spring的配置。 整合spring——监听器 listener> listener-class>org.springfr原创 2016-01-02 17:21:33 · 1803 阅读 · 6 评论 -
【SSH】——Hibernate三种状态之间的转化
【SSH】——Hibernate三种状态之间的转化Hibernate的三种状态为:transient、persistent和detached。对这三种状态的理解可以结合Session缓存,在Session缓存中的状态为persistent,另外两种不在Session中。原创 2015-12-17 16:55:25 · 2208 阅读 · 16 评论 -
SSH答疑解惑系列(二)——java.lang.reflect.InvocationTargetException异常
在项目中遇到了invocationTargetException的问题,在这里跟大家分享一下。报错信息如下:使用反射时,比如执行invoke方法,如果被反射执行的方法体抛出了Exception,这个异常会被包装成invocationTargetException重新抛出。源码解释为:InvocationTargetException is a checked exception that wrap原创 2016-01-03 21:34:34 · 10038 阅读 · 7 评论 -
【SSH】——使用ModelDriven的利与弊
Struts2提供的两种方式:属性驱动和模型驱动。模型驱动可以提高代码的重用性,使得操作简便。但在小型项目中,表单比较少时,并不提倡使用模型驱动。还有一点,在上面的例子中也能看出,模型驱动只能对应一个对象,当表单数据来源比较复杂时,使用模型驱动也无法起到十分明显的作用。原创 2015-09-14 21:45:48 · 2810 阅读 · 20 评论