当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪Spring攻略学习笔记(13)------继承Bean配置       一:知识点       在Spring IoC容器中配置Bean时,可能拥有一个以上的共享某些公用配置的Bean,比如属性和<bean>元素中的属性。你常常需要为多个Bean重复这些配置。 &.........
    ▪paip.提升程序稳定性---最佳实践       paip.提升程序稳定性---最佳实践 作者Attilax ,  EMAIL:1466519819@qq.com  1.防止内存占用不断上升OutOfMemory退出..。特别重要,一定要做.. 先用工具测试程序最终实际使用的内存值.得出.........
    ▪Forest 1.0 一个分布式服务和数据分片的开源框架发布      Forest 一个分布式服务和数据分片的开源框架发布,特点: 应用简单轻量级框架很容易自由扩展 源代码,详细介绍文档及例子:https://github.com/wtt2012/forest Architecture forest-core 核心API和基本.........

[1]Spring攻略学习笔记(13)------继承Bean配置
    来源: 互联网  发布时间: 2013-11-19

 一:知识点

      在Spring IoC容器中配置Bean时,可能拥有一个以上的共享某些公用配置的Bean,比如属性和<bean>元素中的属性。你常常需要为多个Bean重复这些配置。

      Spring允许你提取公用的Bean配置组成一个父Bean。从父Bean继承来的Bean称作子Bean。子Bean从父Bean继承Bean配置,包括Bean属性和<bean>元素中的属性,避免重复配置。子Bean在必要时也可以覆盖继承的配置。

      父Bean可以作为配置模板,也可以同时作为Bean的一个实例。如果你希望父Bean只作为模板而不能检索,必须将abstract设置为true,要求Spring不要实例化这个Bean。

      必须注意,并不是所有在父<bean>元素中定义的属性都将被继承。具体可参见Spring文档关于Bean继承的内容。

二、代码示例:

        Bean配置文件:

<bean id="sequenceGenerator" class="com.jackie.codeproject.springrecipesnote.springioc.SequenceGenerator" >
   <property name="initial" value="100000" />
   <property name="suffix" value="A" />
   <property name="prefixGenerator" ref="datePrefixGenerator" />
</bean>
		
<bean id="sequenceGenerator1" class="com.jackie.codeproject.springrecipesnote.springioc.SequenceGenerator" >
   <property name="initial" value="100000" />
   <property name="suffix" value="A" />
   <property name="prefixGenerator" ref="datePrefixGenerator" />
</bean>
		
<bean id="datePrefixGenerator" class="com.jackie.codeproject.springrecipesnote.springioc.DatePrefixGenerator">
   <property name="pattern" value="yyyyMMdd" />
</bean> 
       为了避免重复相同的属性,可以用这些属性集声明一个基序列生成器。然后,两个序列生成器可以从这个基序列生成器中继承,这样它们自动拥有哪些属性集。如果子Bean和父Bean的class属性相同,就不需要指定。

<bean id="baseSequenceGenerator" class="com.jackie.codeproject.springrecipesnote.springioc.SequenceGenerator" >
    <property name="initial" value="100000" />
    <property name="suffix" value="A" />
    <property name="prefixGenerator" ref="datePrefixGenerator" />
</bean>
		
<bean id="sequenceGenerator" parent="baseSequenceGenerator" />
			
<bean id="sequenceGenerator1" parent="baseSequenceGenerator" />
       继承的属性可以由子Bean覆盖。例如,可以添加不同初始值的子序列生成器。

<bean id="baseSequenceGenerator" class="com.jackie.codeproject.springrecipesnote.springioc.SequenceGenerator" >
   <property name="initial" value="100000" />
   <property name="suffix" value="A" />
   <property name="prefixGenerator" ref="datePrefixGenerator" />
</bean>
		
<bean id="sequenceGenerator2" parent="baseSequenceGenerator" >
   <property name="initial" value="200000"></property>
</bean>
       现在,基序列生成器Bean可以恢复为Bean实例使用。如果希望它仅作为模板,必须将abstract属性设置为true,则Spring不会实例化这个Bean,否则会抛异常。
<bean id="baseSequenceGenerator" abstract="true" class="com.jackie.codeproject.springrecipesnote.springioc.SequenceGenerator" >
   <property name="initial" value="100000" />
   <property name="suffix" value="A" />
   <property name="prefixGenerator" ref="datePrefixGenerator" />
</bean>
       你也可以忽略父Bean的类,让子Bean指定自己的类,特别是在父Bean与子Bean不在同一类层次结构但是共享同名属性的时候。在这种情况下,父Bean的abstract属性必须设置为true,因为父Bean不能实例化。例如,添加另一个也有initial属性的ReverseGenerator类。

public class ReverseGenerator {

    private int initial;

    public void setInitial(int initial) {
        this.initial = initial;
    }
}
       现在,SequenceGenerator和ReverseGenerator不会扩展相同的基类,即他们不在相同的类层次机构中,但是具有同名的属性:initial。为了提取公共的initial属性,需要一个没有定义class属性的父Bean--------baseGenerator。

<bean id="baseGenerator" abstract="true">
   <property name="initial" value="100000" />
</bean>
		
<bean id="baseSequenceGenerator" abstract="true" parent="baseGenerator" >
   <property name="suffix" value="A" />
   <property name="prefixGenerator" ref="datePrefixGenerator" />
</bean>
		
<bean id="reverseGenerator" parent="baseGenerator" class="com.jackie.codeproject.springrecipesnote.springioc.ReverseGenerator" />
		
<bean id="sequenceGenerator" parent="baseSequenceGenerator" />
			
<bean id="sequenceGenerator1" parent="baseSequenceGenerator" />
		
<bean id="sequenceGenerator2" parent="baseSequenceGenerator" />



作者:jackiehff 发表于2013-4-22 23:08:48 原文链接
阅读:29 评论:0 查看评论

    
[2]paip.提升程序稳定性---最佳实践
    来源: 互联网  发布时间: 2013-11-19


paip.提升程序稳定性---最佳实践
作者Attilax ,  EMAIL:1466519819@qq.com 


1.防止内存占用不断上升OutOfMemory退出..。特别重要,一定要做..


先用工具测试程序最终实际使用的内存值.得出一个合理值
  new memory().start();监测内存占用,当物理内存占用超过此值M时,调用SetProcessWorkingSetSize方法回收内存。


2.抛出线程,线程体内要TRY CATCH。。否则抛出EXP导至主程序OUT。。特别重要,一定要做..


3。PRPGRAM。CS内要TRY CATCH,发现主程序出问题,重启。。


4。PROGRAME。CS内增加UnhandledException 的捕获..


5.网络,文件操作一定要TRYCATCH。


6。一般不要使用一个统一的CATCH。特别针对JAVA。。注意FINALLY内部,也需要关闭一个资源,则一个TRY CATCH。


7.日志,缓存等文件,最好不要用一个文件,尽可能按时间生成多个文件。。可以防止万一个哪个文件句柄没被释放,也不会影响后面的文件写入。






参考:


paip.提升性能---C#.NET程序内存占用过多以及OutOfMemory解决方法
paip.程序不报错自动退出的解决 - attilax的专栏 - 博客频道 - CSDN.NET.htm
作者:attilax 发表于2013-4-23 8:46:04 原文链接
阅读:63 评论:0 查看评论

    
[3]Forest 1.0 一个分布式服务和数据分片的开源框架发布
    来源: 互联网  发布时间: 2013-11-19
Forest

一个分布式服务和数据分片的开源框架发布,特点:

  • 应用简单
  • 轻量级框架
  • 很容易自由扩展

源代码,详细介绍文档及例子:https://github.com/wtt2012/forest


Architecture

forest-core

核心API和基本实现,可是来创建一个分布式服务,例如Redis/Memecached 集群,也可以创建一个数据分片服务,像数据库水平和垂直(纵向横向)扩展服务。

forest-core 目前支持分片的精确匹配和范围匹配来实现。

例子:

  • example
    • range match example
    • Basic Server Example
    • Basic Server Example
    • Pooled Server Example
    • Another Pooled Server Example
    • test example
forest-database

基于forest-core实现了一个连接池化的数据库分片服务。这里有很多例子可以学习sharding example.

 

maven dependency

add repository

    <repository>
        <id>fengfei-repo</id>
        <name>fengfei Repository </name>
        <url>http://fengfei.googlecode.com/svn/maven-repo/releases</url>
    </repository>
    <repository>
        <id>fengfei-snapshot</id>
        <name>fengfei Repository </name>
        <url>http://fengfei.googlecode.com/svn/maven-repo/snapshots</url>
    </repository>

use it as a maven dependency:

<dependency>
    <groupId>fengfei.forest</groupId>
    <artifactId>forest-core</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

or

<dependency>
    <groupId>fengfei.forest</groupId>
    <artifactId>forest-database</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>



作者:myloon 发表于2013-4-23 11:12:51 原文链接
阅读:87 评论:0 查看评论

    
最新技术文章:
▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3