(职员)2015-10-24 星期六 日志

今天主要回顾了前几天学习的spring ,hibernate,mina框架 和做了个多人在线聊天的聊天小程序

上午:
对于前面学习的几个框架有了一个梳理,写了一些总结:
1.spring
spring的关键思想是它的控制反转和依赖注入(spring的AOP还没看懂)
控制反转:控制就是对程序运行的控制权,反转是相对与个人来说,意思是,将程序的控制权交给spring框架,而不是我们自己,
以前是我们自己做大部分的控制,比如在用C语言编程的时候,每个对象都是我们定义,我们给他分配空间,最后进行释放的,
其实也不全是我们,C语言编译器也做了很多工作,但是相对于在spring框架下进行编程,我们对程序的控制减弱了很多,不用做
很多像在C语言编程是做的事情,比如创建一个对象,进行释放之类的。这一切在程序底层其实还是会做的,只是spring把他们进行
了高级别的封装,屏蔽了这些琐碎重复和容易出错的管理过程。我们是怎么把程序的相当的一部分控制权交给spring的呢?答案是
依靠xml文件,xml文件中我们定义了bean(bean是一种spring下的可以重复使用的组件),bean有两个基本的属性,name 和class
name是bean的名字,class是这个bean实际的类名,这里的类可以是我们自己写的,也可以是系统的,没有过多的限制,只要能生成
对象就可以,bean联系了具体的类,spring通过xml中的bean就可以自由的掌握bean中的类,达到对对象的控制,而我们在写程序时
只要调用spring下的API就可以给spring发送消息,比如让spring生成某个我们定义的类对于的对象,但是对象的具体怎么创建,怎么
回收,我们完全不要理会。

2.依赖注入
依赖注入是控制反转的补充,bean中有的时候要对类创建时设置属性,比如创建数据库连接的时候就要很多属性,这些属性可以在
bean的属性中设置值,或者设置引用(也就是引用其他的bean) ,这就是注入,注入一些属性,不知道为什么依赖,给类生成对象
是设置属性值,这有什么好处呢?好处是当需要改变依赖只要改一下xml文件就可以了,比如之前的数据库的依赖,改下连接的url或者
用户,密码之类的很容易,而且不要重新编译,因为程序是动态进行读取xml文件进行运行的

2.hibernate
hibernate关键的是实现了数据库中的表和java类的对应,实现方式通过xml文件,将表的字段和java类进行map,hibernate就可以
进行对数据库的操作,当然还是要配置数据库的连接之类的,因为这样hibernate才能接管你的数据库。当映射关系定义好了之后,
一切的关于数据库的操作都可以交给hibernate,也就是我们通过hibernate提供的API对数据库进行操作,而不需要管理数据库的连接
和具体的sql语句,安全简单,比如保存一个定义映射过的对象,只要。save就可以了,还有很多其他的操作。

下午:
开始做了多人在线聊天的小程序,基本过程就是客户端向服务器发聊天信息,服务端发送接收到的信息发送给所有的连接到自己的
客户端,通过session.getservice.getmanagedservice.getvalue 实现 (为什么会实现,不了解) 这样其他客户端就能够看到
除了自己还有其他客户端发送的信息,类似qq群,感觉服务器就是一个信息的转发器,可以还会添加一些验证之类的功能,其中服务器的
性能压力就在转发这里,转发信息的数量是接受到的信息的数量乘以连接到服务器的总的客户端数量,应该没有个客户端都会和服务器有一个seesion
这部分也有很大的开销,这部分是怎么处理的还不知道。下午就在实现这个小程序,现在还有一些问题没有解决,验证部分的。

时间: 2024-12-14 04:59:58

(职员)2015-10-24 星期六 日志的相关文章

2015/10/24课后作业

一.字串加密 设计思想:利用switch语句分辨即将进行的是加密还是解密操作:而后将用户输入的字符串转化为字符数组,利用字符对应的ASCII码值进行加密操作,反之即为解密操作: 程序流程图: 源代码: import javax.swing.JOptionPane;public class Complication { public static void main(String args[]){  String i=JOptionPane.showInputDialog("请选择要进行的操作:1

Daily Scrum (2015/10/24)

由于这一天是周六,大家的学习热情依旧不是很高,但是在PM的要求和督促下,我们还是进行了一些工作.我们预计在明天(周日)完成全部的代码阅读工作,在下一周开始进行代码的编写工作,以下是我们的今日的工作情况: 成员 今日工作 时间 明日工作 符美潇 1.能在服务器上运行上一届团队的源码 2.完成全部阅读工作 2h 明日将开一个小组会议,讨论本周个人分数分配博客作业以及下一周工作的讨论.具体任务待定. 谢金洛 1.完成阅读工作 2.算法分析 2h   周文祥 1.完成阅读工作 1h   潘礼鹏 1.筹划

2015.10.24 信息系统项目管理师作业

一.信息安全系统和安全体系1.信息安全系统三维空间示意图中,X.Y.Z轴的名称,及它们各自包括的内容? 答:X轴是安全机制:Y轴是OSI七层模型:Z轴是安全服务: X轴安全机制内容:1.基础设计安全:2.平台安全:3.数据安全:4.通信安全:5.应用安全:6.运行安全:7.管理安全:8.授权与审计安全:9.安全防范系统: Y轴OSI网络参考模型内容:1.应用层:2.表示层:3.会话层;4.传输层:5.网络层:6.链路层:7.物理层: Z轴安全服务内容:1.对等实体认证服务:2.访问控制服务:3.

Clover KextsToPatch 使用方法 2015.10.21

Clover KextsToPatch 使用方法 2015.10.21 前些天,因为 Thinkpad X230 BIOS 白名单限制,给她换了一块 ar9285 无线网卡,只是因为这块网卡正好可以被 Mac OS X 驱动,也正好在 Thinkpad X230 BIOS 白名单之中.给 Clover 配置的时候,为了防止忘记,便记录下来. 因为灵活使用 Clover 成为黑苹果用户的必修课,否则你就只能漫天寻找 kext,寄希望与运气能正确驱动你的硬件了.Clover 中有一个强大的功能 Ke

洗澡时感想(2015.10.2篇)

洗澡时感想(2015.10.2篇),以这个为题,或许是自己平时没有其他时间去思考自己吧,唯有冲凉时,身边只有一个水桶,洗发水和香皂(或者沐浴露),还有水龙头的水急冲冲的流着.这个时刻,没有网络,没有虚拟的食物来干扰,除了心里一直想着,可能会出现鬼...  所以洗头发不敢闭着眼睛,擦身子也是神速,两分钟搞点,在自己有时间戳背面的时候,会发现有一层厚厚的泥垢. 蹲着浴室里面,看着水慢慢的流着,手拉着毛巾,毛巾带着水,慢慢的往身上浇水一般,想到我自己目前后悔自己拥有的自行车和台式机,因为我觉得一个人在

我关注的一周技术动态 2015.10.25

分布式系统实践 1. ScyllaDB:用 C++ 重写后的 Cassandra ,性能提高了十倍 http://blog.jobbole.com/93027/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 要点: 一直非常不喜欢hadoop系列对JVM的重度依赖, 可能是我不熟悉java的原因吧, 总感觉JVM背着我们做了很多不可见的工作, 心里不踏实. ScyllaDB宣称比Cassandra性能提高十倍, 肯定

我关注的一周技术动态 2015.10.04

分布式系统实践 1. Distributed Systems(电子书) http://www.printfriendly.com/print/v2?url=http://book.mixu.net/distsys/ebook.html# 要点: 免费的介绍分布式系统理论的电子书, 这本书的难度非常适合初学者, 涵盖了分布式系统的方方面面, 但是又没有深入细节而无法理解, 结合具体例子, 让分布式理论学起来也不那么枯燥了. 2. 分布式系统一致性的发展历史(一) http://www.dianro

我关注的一周技术动态 2015.10.18

分布式系统实践 1. 从Storm和Spark 学习流式实时分布式计算的设计 http://www.csdn.net/article/2014-08-04/2821018/1 要点: 流式计算并不是什么新鲜的东西, 相信很多同学也都用过. 不过之前流式计算往往都用在业务相关的地方, 随着大规模分布式系统对trace和metric数据收集的迫切需求, 基于时间序列数据库和流式计算就可以实现复杂的数据分析和汇聚功能, 这篇文章帮助大家理解流式计算的原理, 大家可以想象一下, 如果希望实时统计性能消耗

2015.10.10作业

2015.10.10作业1.沟通管理计划包括哪些内容?      制定风险管理计划  风险识别,风险定性分析,风险定量分析,风险应对计划,风险监控2.风险管理中,负面风险. 正向风险的应对策略?      应该为每种风险选择一种或几种有效的策略.    负面风险(威胁)的应对策略:回避,转移和减轻.    正面风险(机会)的应对策略:开拓,分享和强化.   要避免所有风险是不可能的,所以有时要采取一种风险接受策略,通常是预留突发事件预备资源.3.采购管理中,包括哪些内容?     编制采购管理计

背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令

原文:背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令 [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 MVVM(Model-View-ViewModel) 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令 示例1.ModelMVVM/Model/Product.cs /* * Model 层的实