`
dylan0514sina.cn
  • 浏览: 92046 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表

消息写

   处理流程    正如JDK规范中指出一个Channel任意时刻只能执行单个线程的写操作。单个Nioworker可以顺序处理多个socketChannel的写操作,单个SocketChannel上的多次写操作会事先放入到写请求队列;结果由Nioworker调度执行。当Channel被 ...

消息读

netty使用了相关的算法计算出比较合适缓冲区大小,整个流程图如下 ReceiveBufferSizePredictor可以根据实际读取的字节大小数设置下次读写叫合适的缓冲区大小。类结构如下 AdaptiveReceiveBufferSizePredictor   提供了一种自适应的计算方式,如下代码所述,当改类初始化的时候,会填充SIZE_TABLE数组。 private static final int[] SIZE_TABLE; static { List<Integer> sizeTable = new ArrayList< ...

Nio线程协作

Netty 是一个客户端服务器框架,它基于jdk nio开发。Netty home. Netty 样例代码如下 客户端 // Configure the client. ClientBootstrap bootstrap = new ClientBootstrap( new NioClientSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCach ...

web大数据导出

    博客分类:
  • any
关于csv文件导出的开源框架很多,可以到http://sourceforge.net/search/?type_of_search=soft&words=csv去了解学习。在典型的基于java的MVC框架中,当要下载数据时需求在页面上添加链接或按钮,触发一次请求返回一个流,在响应中指定mime type类型比如 response.setContentType("application/ms-excel;charset=gbk")。常用的web框架struts2,webwork,Spring MVC都提供了一致的方式只要你构造一个流。流行的eXtremeComponen ...

分页复选实现

    博客分类:
  • any
在struts2或webwork等web框架中中编写基于ec:table可分页记住复选框 1.分离主页面和子页面,子页面用于加载ec 列表 2.在主页面上定义全局数组(装载选中的记录key) 3.提交选中的提交按钮使用自定义freemarker,在ftl代码中:      1.将子页面当前选中key,在全局数组中不存在,则放入。      2.取出全局数组中的记录,根据它生成对应的hidden域,每个hidden域的名字为checkedNos,值为对应数组中的key 4.因为使用ajax分页,通过ec:table中oninvoke指定JS function,,编写此function分为三步    ...
给出例子代码 public class TestAction{ private List users; ////// getter setter } .... public class User{ private String username; ////getter setter } 在以上代码中,假设users集合装的是User类实例,则在于TestAction同包下建立一个TestAction-conversion.properties文件: Element ...
PropertyResolver 是 Environment的顶层接口,主要提供属性检索和解析带占位符的文本。bean.xml配置中的所有占位符例如${}都由它解析。通过例子代码了解它的功能和使用 public class PropertySourcesPropertyResolverTests { private Properties testProperties; private MutablePropertySources propertySources; private ConfigurablePropertyResolver propertyResolver; ...
介绍 Environment架构是spring 3.1版本引入的,它代表当前应用运行环境比如servlet,porlet 。主要处理两部分的内容 profiles和properties,properties将使用org.springframework.core.env.PropertyResolver解析。而Environment继承了此实现。 背景    一个profile是有名字的,在激活状态下它代表注册在容器中的一组bean definitions.一组bean可以通过xml和注解配置被归于到一个profile中,只要这个profile被激活了那这组bean则是可以被注册的。那Env ...
介绍 Bean definition profiles是3.1版本引入的新特性。 背景 它提供了一种机制:当客户端请求某一bean时,容器可以根据不同的环境注册并返回不同的bean。“environment”对不同的用户也说意义也不太一样,把应用部署在性能环境中测试 ...

方法缓存

介绍   spring3.1之后提供了方法的缓存支持,透明的将缓存添加到应用中。这种缓存架构类似事务架构,提供了不同的缓存方案。 理解缓存架构   缓存架构的核心在于缓存Java方法,减少方法执行次数。就是说当目标方法执行时,架构会检查指定参数的方便是否已经被执行过,如果没有则执行,并缓存结果返回;否则直接返回缓存结果并不执行方法。当然这种情况只针对方法执行结果结果不会变。   缓存和缓冲区     缓冲区用于在读写操作之间开放的临时存储区,操作快的一方必须等待慢的一方因此影响性能。缓存区通过开放大的比较合适的数据块而不是单字节,以缓解这种性能损失,特征是单条记录读写只有一次,而且至少有 ...
xml schema是spring 2.0版本之后引入的,在之后的2.5和3.x加入了新的元素。引入的主要动机在于:虽说spring把<bean/>中一切皆为对象,但在开发人员的角度上讲,我们要在Spring中具体化或抽象化一些东西,比如具体化单值、集合;或特定于具体应用的抽象比如AOP,事务。那不得不在spring中配置一些基础设施bean。或第三方框架支持我们都使用过spring Security框架,说实在的如果不使用security标签,我们必须为每个过滤器有一个<bean/>定义。所以我们为了方便不得不去自定义标签,xml schema将适用。 引入schem ...
BeanDefinition是Spring配置文件中bean定义的内存表现形式,我们先来看看bean的创建。在下图中不同的元素的解析路线用不同的颜色标注 主线部分   实例化xmlApplicationContext 实例化XmlBeanDefinitionReader ResourceLoader定位bean文件 XmlBeanDefinitionReader读入Resource DefaultBeanDefinitionDocumentReader解析Document 默认命名空间判断 import元素判断 alias元素判断 beans元素递归 非默认bean命名空间 ...
初始化回调     实现org.springframework.beans.factory.InitializingBean接口,afterPropertiesSet方法将在bean的所有属性装配好之后调用    <bean id="exampleInitBean" class="examples.AnotherExampleBean"/> public class AnotherExampleBean implements InitializingBean { public void afterPropertiesSet( ...

Scope实现原理

内置Scope分类 Singleton 每个IOC容器对一个bean定义创建唯一实例 Prototype 对一个bean定义,每次请求容器都会创建新的实例 Request   对一个bean定义,一次web请求会创建一个实例 Session  对一个bean定义,一次web会话创建一个实例 Global Session 对一个bean定义,一次porlet会话创建一个实例 后三种只在Web环境下使用,AbstractApplicationContext refresh入口 AbstractRefreshableWebApplicationContext会注册这三种BEAN WebAppli ...
singleton实例依赖于prototype实例,ProtoType含义是无效的,必须钩入向Spring容器请求,也就是调用getBean方法。换句话说,我们必须改变依赖关系的注入。 例如A的scope是 Singleton ,B的scope是Prototype,当A依赖B时,B实例会在第一次初始化 ...
Global site tag (gtag.js) - Google Analytics