开源框架
文章平均质量分 72
后台开源框架的使用
wangchenggong1988
这个作者很懒,什么都没留下…
展开
-
如何实现netty RPC的心跳检测?
所谓心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性.注:心跳包还有另一个作用,经常被忽略,即:一个连接如果长时间不用,防火墙或者路由器就会断开该连接。一、netty中如何实现心跳机制?在 Netty 中, 实现心跳机制的关键是 IdleStateHandler, 那么这个 Handler 如何使用呢?先看下它的构造器:public IdleStateHandler(int readerIdleTimeSeco.原创 2021-04-06 18:50:40 · 535 阅读 · 0 评论 -
如何实现netty RPC的服务注册与服务发现?
一、为什么要进行服务注册与发现?之前的demo只是实现了一个服务消费方对一个服务提供方点对点的服务调用,显然没有做到服务的高可用。那么该如何改进呢?思路就是由多个服务提供方提供服务,而每次服务消费方请求服务时就先从这多个服务提供方中筛选出一个可用的服务提供方。为了解耦服务的消费方和提供方,可以在两者中间安放一个叫“注册中心”的中介方,专门用来维护服务注册表(即服务节点的访问地址列表)。它可以供服务提供方进行服务注册, 也可以供服务消费方拉取服务注册表进行服务发现,也可以供服务消费方监听服务注册表的变化原创 2021-04-06 11:50:35 · 409 阅读 · 0 评论 -
如何用netty实现一个单机版的RPC?
上篇文章,我介绍了一下基于Http协议实现的RPC, 而一、Spring是如何把bean注册到容器中的?Spring中有个BeanDefinition的概念,类并不是直接利用反射创建出来实例原创 2021-03-30 08:09:38 · 227 阅读 · 0 评论 -
自己动手,向Spring容器中动态注册Http RPC动态代理
一、Spring是如何把bean注册到容器中的?Spring中有个BeanDefinition的概念,类并不是直接利用反射创建出来实例的,而是先被加载为BeanDefinition对象,然后被Bean工厂的后置处理器处理,最后才到bean的实例化环节。当然,上图只是一个梗概,具体流程还要结合源码梳理。二、如何在Spring中动态注册bean?三、如何实现Http RPC呢?RPC是远程过程调用,目标是让程序员像调用本地方法一样 调用远程方法,原理如下图:可以在传输层(比如dubbo就是基于原创 2021-03-24 19:23:38 · 579 阅读 · 4 评论 -
MyBatis的设计模式总结
单例模式ErrorContext:使用ThreadLocal实现线程内的单例(虽然定义在executor包, 但是服务于日志包)io包下的VFS:使用静态内部类实现的单例模式工厂模式:反射包中的ObjectWrapperFactory、ReflectorFactory等绑定包中的MapperProxyFactory:/** * Mapper代理类工厂,用于为某个Mapper接口生成代理类 * 存了Mapper接口的Class对象,提供了newInstance静态方法 * @a.原创 2021-02-10 18:45:39 · 93 阅读 · 1 评论 -
Mybatis中的插件是如何工作的?
一、为什么MyBatis要提供插件?(MyBatis的插件的应用场景)一般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者自行拓展。这样的好处是显而易见的,一是增加了框架的灵活性,二是开发者可以结合实际需求,对框架进行拓展,使其能够更好的工作我们可基于 MyBatis 插件机制实现分页、分表、监控等功能。二、如何自定义MyBatis的插件?实现自定义的MyBatis插件需要让插件类实现 Interceptor 接口并在MyBatis的全局配置文件中进行注册外,还需要通过注解标注该插原创 2021-02-10 17:38:03 · 176 阅读 · 0 评论 -
mybatis的动态sql是如何解析的?
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑那么mybatis的动态sql是如何解析的呢?MyBatis的配置文件有两类:一个是全局配置文件,mybatis-config.xml,另一个是sql映射文件。动态sql体现在sql映射文件中,常见的有以下标签:ifchoose (when, otherwise)trim (where, set)foreach而这些标签会用在<sql>节点或sql语句节点(如<inser.原创 2021-02-09 18:29:56 · 291 阅读 · 0 评论 -
Tomcat发布网站知识集锦
原文地址:http://xiaopihai.iteye.com/blog/418757修改端口、修改默认发布目录、多域名绑定 一、修改发布端口号为80(Tomcat默认为8080) 打开配置文件(我的如下:E:\J2EEServer\Tomcat 6.0\conf\server.xml),找到: maxThreads="150" connect转载 2013-08-10 10:07:06 · 655 阅读 · 0 评论 -
Webservice的认识小结
首先, 在java中, 通过http请求发送XML,据我所知,有两种写法:一种是使用httpClient(需要httpGet或httpPost对象配合),另一种写法是使用URL(先调用openConnection()方法,然后可以设置请求头,调用getOutputStream()方法获取OutputStream,然后用输出流将要发送的xml实体文件写出去)。接收XML的写法,一般都是用reques原创 2013-08-22 23:42:54 · 767 阅读 · 0 评论 -
Struts2低版本安全漏洞及解决办法
原文地址:http://www.2cto.com/Article/201209/158552.htmlStrusts2的低版本漏洞相信大家都知道了,前几天的时候尝试了一下,果然危害极大 其实不用知道太多,我们只需要知道?('\u0023_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(aaa)(('\u0023c转载 2013-10-09 20:24:31 · 960 阅读 · 0 评论 -
struts2升级到2.3.15.1总结
原文地址:http://www.cjsdn.net/post/view?bid=20&id=200702一、struts2.1版本之后就对el表达式不支持了,页面会抛出异常。解决方法:el表达式最好更改为ongl表达二、Struts2表单字段处理1、校验更加严格,不处理空格问题,会导致后台取不到相应的表单值,抛出NullPointException的错误2、定义fo转载 2013-10-09 20:55:02 · 1255 阅读 · 0 评论 -
struts2怎么升级到2.3.15.1版本,Struts2升2.3.15.1后tomcat启动不了
原文地址:http://hi.baidu.com/firefly0927/item/63fd418acf20b823110ef31b如果是把下载来的新jar包替换掉原来的jar包,tomcat会启动不了,正确的升级方式如下commons-lang3-3.1.jar (这个是新加)(并保留原来的commons-l转载 2013-10-10 17:20:06 · 1577 阅读 · 0 评论 -
如何解决Java.lang.NoClassDefFoundError--第一部分
原文地址:http://vipcowrie.iteye.com/blog/1561291在JAVA开发中,main线程中抛出java.lang.NoClassDefFoundError是一个非常普遍且比较难解决的问题。解决这个问题的复杂性主要取决于你的软件大小和中间件部署情况,尤其要考虑在应用中出现的数量众多的classloader的情况。 本文将从一个比较高的角度看这个问题,转载 2013-10-11 22:10:54 · 640 阅读 · 0 评论 -
object references an unsaved transient instance - save the transient instance before flushing
这个异常怎么解决呢?解决后补充吧原创 2014-01-22 16:53:11 · 625 阅读 · 0 评论 -
hibernate中持久化对象的生命周期(三态:自由态,持久态,游离态 之间的转换)
方法的对比:1.get 与load都是从数据库中加载数据封装为java对象,使得java对象从自由态直接变为持久态;但是有两点区别:①get返回对象或null,load返回值则始终不为null,找不到时会抛异常②get即时执行insert,而load则是在使用此对象时才执行insert2.save,update与saveOrUpdate3.save与persist4,saveOrUpdate与merge另外clear与flush方法原创 2011-05-16 23:22:00 · 5893 阅读 · 6 评论 -
struts2 标签自定义数值处理
//对double类型的数值进行格式化public String formatDouble(double s){ String result = String.valueOf(s);int index = result.indexOf(".0");if(index > 0){result = result.substring(0, index);}return re原创 2014-09-23 13:16:28 · 824 阅读 · 0 评论 -
Struts2标签中的s:if标签判断
外边要用单引号,原创 2014-10-09 09:34:19 · 1122 阅读 · 0 评论 -
Spring框架的入门介绍
一.Spring是什么?Rod Johnson:SpringFramework创始人,音乐学博士 技术主张:技术以实用为本Spring取名“春天”之意,意在表示javaEE的春天。它是轻量级框架,是当前的主流框架。它的目标是使现有技术更加易用,推进编码最佳实践。 1、Spring的核心是一个轻量级(Lightweight)的容器(Container)。 2、Spring是实现Io原创 2017-06-18 19:07:32 · 453 阅读 · 0 评论 -
MyBatis框架的使用
使用步骤1.导入jar包 除了mybatis的jar包外,还需要动态代理用到的jar包,数据库要用到的jar包2.建立源代码文件夹,并在其下建立mybatis-config.xml文件<!DOCTYPE configuration PUBLIC "-//mybatis.org/原创 2011-07-16 11:15:51 · 6581 阅读 · 3 评论 -
加载web项目时报的错误:Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modul
用eclipse开发的servlet项目不能加载到tomcat6.0服务器,原因是:servlet的版本高了 只要将version="3.0"改成version="2.5",然后重启eclipse即可!!!具体操作步骤:找到你的eclipse:D:\eclipse\workspace-jee\项目名称\.settings\org.eclipse.wst.common.project.f转载 2013-07-27 11:24:15 · 1151 阅读 · 0 评论 -
hibernate框架初学
<br />所谓框架,我理解的就是导入了一些人家已经编写好的代码,从而简化了一部分冗长代码的编写,使得开发人员能把精力更多的投入到较有意义的代码中,已经接触到的除了MVC的三大框架SSH外还有javascript的jQuery框架。<br /> <br /> <br />今天接触了hibernate框架,它旨在简化java程序与数据库的交互。其核心是JDBC技术和java的映射机制。<br /> <br />使用时需要配置实体类与数据库中表格的对应关系(实体类与表格对应,其属性与表格的字段或者说是列名对应)原创 2011-05-15 15:39:00 · 965 阅读 · 0 评论 -
hibernate的查询
①【HQL】常规四步走://①写hql语句String hql ="from User as u where u.username=?";String hql ="from User as u where u.username= :name";//另一种写法//②创建query对象Query query = session.createQuery(hql);//③对占位符赋值query.setString(0,'tom');query.serString('name','tom'原创 2011-05-18 23:28:00 · 790 阅读 · 1 评论 -
hibernate框架中的数据关联映射
<br />姑且把实体类中涉及其他类的属性称为“关键属性”,把映射文件中涉及其他类的标签称为“关键标签”<br />【一对多】(举例:Type,Book)<br />首先建表,毕竟表决定配置:显然多对一是有依赖关系的,所以”多“的一方将引用”一“的一方的id作外键,从而成为外键表。<br />①pojo中实体类的写法:在一中添加多的set集合,在多种添加一的对象<br />Type中声明private Set<Book> books; 并set ,get<br />Book中声明private原创 2011-05-22 00:13:00 · 871 阅读 · 1 评论 -
hibernate中的缓存机制
<br />什么是缓存?<br />简单地说,它是微机系统为了提高性能而采取的一种对数据存储方式,就是把经常被访问的数据放在一块临时的存储空间中,比之于每次访问数据都要去磁盘读取要快!就好比一个人出远门了,要带银行卡,但也最好带点现金,以防在紧急情况下快速应付,毕竟用银行卡取钱还需要再去找银行或自动取款机,这样可能就不如带现金来得快。<br />在互联网中,数据最终都要交给cpu处理,获取数据的过程越复杂,那么执行速度就越慢。一般情况下,从另外一台电脑上获取数据要比从本主机的硬盘上获取数据要慢,而从本主机的原创 2011-05-24 14:18:00 · 809 阅读 · 0 评论 -
使用 Spring 2.5 注释驱动的 IoC 功能
<br />使用 Spring 2.5 注释驱动的 IoC 功能陈 雄华 (quickselect@163.com), 技术总监, 宝宝淘网络科技有限公司简介: 基于注释(Annotation)的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,提供了完全基于注释配置 Bean、装配 Bean 的功能,您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置。本文通过实例详细讲述了 Spring 2.5 基于注释 IoC 功能的使用。 <br /> <br />概述转载 2011-05-30 09:46:00 · 619 阅读 · 0 评论 -
Spring实现AOP的4种方式
先了解AOP的相关术语:1.通知(Advice):通知定义了切面是什么以及何时使用。描述了切面要完成的工作和何时需要执行这个工作。2.连接点(Joinpoint):程序能够应用通知的一个“时机”,这些“时机”就是连接点,例如方法被调用时、异常被抛出时等等。3.切入点(Pointcut)通知定义了切面要发生的“故事”和时间,那么切入点就定义了“故事”发生的地点,例如某个类转载 2011-06-08 16:47:00 · 902 阅读 · 0 评论 -
Struts框架中三种获取Session的方法
一。使用ActionContext对象public String execute()throws Exception{ Map session = ActionContext.getContext().getSession(); session.put("name","tom"); return SUCCESS;} 二,通过实现Sess原创 2011-06-16 17:06:00 · 2556 阅读 · 0 评论 -
三大框架学习心得
三大框架都用到了java 的反射机制。在Struts中,Action代理正是利用了Java的反射机制创建出了Action实例;在Hibernate中,在将数据库中的数据封装成Java对象时,需要调用pojo的set方法,这用的就是反射机制;在Spring中,它管理的bean都是通原创 2011-09-01 21:23:58 · 2831 阅读 · 0 评论 -
struts2中的ActionSupport
Action 跟 Actionsupport 的区别 当我们在写action的时候,可以实现Action接口,也可以继承Actionsupport这个类.到底这两个有什么区别呢? Action接口有: public static final java.la转载 2011-08-31 20:22:17 · 986 阅读 · 0 评论 -
hibernate中主键生成策略
Hibernate.cfg.xml配置文件:hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "hibernate-configuration-2.0.dtd">转载 2011-09-22 18:11:33 · 741 阅读 · 0 评论 -
对Hibernate的理解
ORM框架:ORM Object Relational Mapping 对象关系映射Hibernate的作用好比是在java对象和关系型数据库之间的一座桥梁,负责两者之间的映射,可以让程序设计人员更方便的以面向对象的思想操纵数据库懒加载----------只有原创 2011-09-23 13:09:34 · 747 阅读 · 0 评论 -
hibernate、struts、Spring框架的详解
1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory为什么要用:1.转载 2011-08-31 11:29:42 · 1412 阅读 · 0 评论 -
Spring Security的使用
1.Spring Security简要介绍Spring Security以前叫做acegi,是后来才成为Spring的一个子项目,也是目前最为流行的一个安全权限管理框架,它与Spring紧密结合在一起。Spring Security关注的重点是在企业应用安全层为您提供服务,你将发现业务问题领域存在着各式各样的需求。银行系统跟电子商务应用就有很大的不同。电子商务系统与企业销售自动化工具又有很转载 2011-09-30 15:27:13 · 2152 阅读 · 0 评论 -
使用Struts2的iterator标签轻松遍历复杂的Map类型
1.创建一个Web工程,添加Struts2支持。2.创建两个实体类:a). Mother(母亲)的Java类。package struts.map.entity;import java.io.Serializable;public class Mother implements Serializable {private static final转载 2012-04-24 17:30:57 · 796 阅读 · 0 评论 -
log4j的设置与使用
1. 介绍1.1. Log4j 是什么?Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程,而这些可以通过一个配置文件转载 2013-07-30 13:18:55 · 809 阅读 · 0 评论 -
springmvc框架的使用
一、springmvc的请求模式显然,springmvc采用的是MVC设计模式,与struts相类比struts2springmvcM(模式模块,包含处理器组件)处理器为Action类处理器为Controller类V(视图模块)C(控制模块,将请求分发到不同的处理器)在web.xml原创 2011-07-16 01:08:24 · 1507 阅读 · 1 评论 -
Java Web开发应用架构浅谈
原文地址:http://blog.csdn.net/shuqin1984/article/details/9472613本文就我所经历和使用过的技术和框架, 讨论 Java / Javascript 技术组合构成的Web 应用架构。一、 概述Web 应用架构可以划分为两大子系统:前端子系统和后台子系统。 前端子系统:转载 2013-07-26 00:11:55 · 960 阅读 · 0 评论 -
struts框架中前台与后台之间的数据传输
运用struts框架开发项目时会有一件比较神奇的事情:前台向后台传输数据的写法很简单。在action类中声明前台要用到的变量(包括常用的变量和自己构建的类),并生成相应的get和set方法,这样就可以在前台向后台提交表单时,只需要在对各表单项的name属性赋值时与action类中的变量名一致,并提交到相应的action类中处理即可。前台写法:用户名:密码:后台写法:public UserAction{ private UserService us = new UserService原创 2011-05-14 19:16:00 · 3216 阅读 · 0 评论