- 博客(15)
- 资源 (25)
- 收藏
- 关注
原创 Java for Web学习笔记(一百):持久化初探(5)Enum、时间和lob的类型匹配
ENUM缺省的,ENUM对应为0,1,2,3,但这种方式可读性较差,且如果代码的顺序发生变化,将出现严重错误。更好地采用字符串方式,在数据库中可以是VARCHAR,也可以用ENUM。我们对小例子的Author表进行改造CREATE TABLE `Authors` ( `AuthorId` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
2017-11-25 17:42:58 972
原创 Java for Web学习笔记(九九):持久化初探(4)JPA小例子(下)
Entity的映射虽然在前面,我们给出了表格。但书推荐我们先设计代码,然后根据代码来设计数据库,用户需求-》代码设计-》数据库设计。但我觉得大项目可能不会这样。类和数据的映射//表明这是 @javax.persistence.Entity,缺省Entity的名字是类名,如果需要特指,可通过用name参数。@Entity(name = "PublisherEntity")/*可以
2017-11-25 17:36:09 988
原创 Java for Web学习笔记(九八):持久化初探(3)JPA小例子(上)
在tomcat中配置我们采用数据源在tomcat中配置的方式:数据库的配置在war之外。在很多网上资料中,这是设置在web app里面的xml中,这存在一个问题,如果配置封装在war中,当我们部署环境出现变化,最简单地,ip地址变更,账号密码变更,就需要重新封装war,当然,我们可以手动更改tomcat解析后的war包里面的配置,但对于升级和版本回退存在问题。最好的方式是保持w
2017-11-25 17:08:22 1286
原创 Java for Web学习笔记(九七):持久化初探(2)ORM、JPA和Hibernate
对象关系映射:Object-Relational Mapper(O/RM)我们希望直接在关系型数据库中读写对象,而无需在代码中操作SQL,这需要Object-Relational Mapper。我们可能有几十个表格,每个表格都有很多列,这样整个增删改查的代码就很繁琐,使用O/RM,我们的代码可以得到很大的简化。仍如使用上一学习中的学生例子:public Product getStude
2017-11-25 11:05:29 989
原创 Java for Web学习笔记(九六):持久化初探(1)数据存储
数据的存储介质flat-file entity storage不同的entity可能存放在不同的目录,每个entity就是目录下的一个文件,名字是代理键( surrogate key),也就是索引,方便定位。文件格式多样,可能是直接Java对象序列化,可能是XML,JSON。读写entity,需要打开文件和关闭文件,因此效率低下,且不支持代理键之外的索引。一般用于存储少量且基本的数据,
2017-11-25 10:46:03 741
原创 Java for Web学习笔记(九五):消息和集群(10)利用RabbitMQ实现订阅和发布
目的之前,我们学习了利用websocket进行订阅和发布的方式,连接数是N(N-1)/2,随着节点的增加,连接数迅速增加,只适合于小的集群。我们利用RabbitMQ重写一下事件广播。我们只需重写ClusterEventMulticaster,改为AMQPEventMulticaster。作为小例子演示,我们简单地选择fanout方式,由节点对收到的消息进行过滤。AMQPEventMulti
2017-11-12 16:31:21 1296
原创 Java for Web学习笔记(九四):消息和集群(9)RabbitMQ和消息模式(下)
例子:RPC的实现这是一个通过AMQP使用RPC的例子,RPC是个同步的处理,需要等待响应。在实际应用需要特别消息,server可能性能很慢,server可能关闭。我们是否一定要使用RPC,是否可以用异步的方式替代。在此,我们只是演示如何利用RabbitMQ提供的消息管理来实现一个RPC。思路如下:RPC Server从一个队列rpc_queue中接收消息,RPC client将请
2017-11-12 16:24:27 1145
原创 Java for Web学习笔记(九三):消息和集群(8)RabbitMQ和消息模式(中)
Work Queues:竞争消费模式(competing consumers pattern)简单模式,也可以用于多个client(subsriber)去获取消息,和简单模式对比:我们希望数据能够真正被client处理完,client处理好后应发送Basic.ACK消息给server,如果client因为某个原因未能处理好,当channel关闭,connection关闭或中断的时候
2017-11-12 16:10:38 953
原创 Java for Web学习笔记(九二):消息和集群(7)RabbitMQ和消息模式(上)
学习目的RabbitMQ是AMQP的一个实现。我们将跟随rabbitMQ官网上的例子,了解AMQP所支持的不同消息队列模式,以及代码如何实现。安装RabbitMQ ServerUbuntu自带的RabbitMQ Server,安装如下sudo apt-get install rabbitmq-serversudo service rabbitmq-server sta
2017-11-12 15:53:50 954
原创 Java for Web学习笔记(九一):消息和集群(6)利用websocket实现订阅和发布(下)
ClusterEventMulticaster:自定义的ApplicationEventMulticaster设置为root上下文的bean在root上下文的配置文件中:@Beanpublic ApplicationEventMulticaster applicationEventMulticaster(){ SimpleApplicationEventMultica
2017-11-11 20:26:45 2814
原创 Java for Web学习笔记(九十):消息和集群(5)利用websocket实现订阅和发布(上)
集群中的订阅和发布利用spring framework在本app内的订阅和发布十分简单。当我们系统越来越复杂的时候,我们需要向其他app发布消息。本学习将给出一个通过websocket来实现不同app之间消息的订购和发布。在小例子中,我们在所有节点之间都建立webSocket连接来实现消息的发布和订阅。这种方式,节点既是publisher,又是subcriber,还是broker。我们
2017-11-11 19:35:15 7731
原创 Java for Web学习笔记(八九):消息和集群(4)定制发布和订购
SimpleApplicationEventMulticaster本学习一方面进一步了解Spring对publish/subcribe的支持,另一方面也是为了后面如何利用webSocket在集群中传递事件的小例子作准备。spring将发布的消息称为event,通过消息广播器发布消息并发送到响应的订阅中。消息广播器可以理解为app内部的broker。Spring提供了SimpleApplicat
2017-11-11 10:50:38 890
原创 Java for Web学习笔记(八八):消息和集群(3)序列化Serializable
对象序列化在集群中,涉及到数据在不同的app,不同的JVM,不同的机器之间的。Java通过对象的序列化实现对象在不同app之间传递。在进一步探讨集群之前,我们需要对序列化进行了解。推荐阅读Java对象表示方式1:序列化、反序列化的作用对于要求序列化的对象,static和transient是不进行序列化的。我们看看下面简单的小例子,如何通过自定义的序列化和反序列化来实现transie
2017-11-10 22:00:52 1005 1
原创 Java for Web学习笔记(八七):消息和集群(2)应用内的publish和subscribe
学习内容Spring框架很强大,已经自带app内部的消息发布订阅了。我们甚至不需要在配置文件(代码)中加入任何内容。 我们将学习如何在一个spring应用内进行消息的发布和订阅定义事件事件需继承Spring的ApplicationEvent。在发布事件后,broker(spring framework)将发送给订阅的用户。如果订阅了这类事件,相关的子类事件也会监听到。下面是一个例子:T
2017-11-10 21:47:31 1551
原创 Java for Web学习笔记(八六):消息和集群(1)一般性了解
应用消息:紧耦合和松耦合应用消息常用的是RPC和发布/订阅,其实就是分布代表了同步和异步。随着大系统的发展,微服务架构的兴起,松耦合的发布订阅模式越来越流行。以员工系统为例,涉及财务报税服务,报销服务,工资单服务,福利服务等等,新的服务可能不断出现。如果采用紧耦合的RPC,则员工系统必须对服务了解,并主动调用这些服务,每新增一个服务,员工系统都要进行update。随着新服务的增加,员工系统
2017-11-10 21:27:36 1106
Pro Android学习:联系人API
2015-06-15
Pro Android学习:传感器
2015-02-06
[zip文件] Pro Android学习:拖拽小例子
2014-12-12
Pro Android学习:touch screen小例子
2014-11-18
Pro Android学习:list widget小例子
2014-10-23
Pro Android学习:widget小例子
2014-10-15
Pro Android学习:media frameworks小例子
2014-09-30
[zip文件] Pro Android学习:telephony小例子
2014-09-16
Pro Android学习:location小例子
2014-08-27
Pro Android学习:2D动画小例子
2014-08-14
Pro Android学习:Alarm manager小例子
2014-07-18
Pro Android学习:Broadcast小例子
2014-07-01
Pro Android学习:AsyncTask小例子
2014-05-16
Pro Android学习:了解Handler小例子
2014-05-08
Pro Android学习:了解package的小例子
2014-04-18
Pro Android学习:Android service小例子
2014-03-27
NTLM PPROXY client的实现(C source code)
2009-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人