学习~!多谢智勇~!

来源:互联网 发布:linux查看编码方式 编辑:程序博客网 时间:2024/06/10 21:01
饶智勇  22:12:19

卜回頭  22:17:05
就单拿一个模块,不考虑与其他模块的交互。如:学生完善个人信息,
卜回頭  22:19:18
我先在Eclipse中建好数据库,然后用hibernate reverse engineering导出映射,
卜回頭  22:20:02
之后该怎么做呢?
饶智勇  22:20:43
==
卜回頭  22:20:46

饶智勇  22:33:00

饶智勇  22:34:13
你现在做的是到这里吧
卜回頭  22:34:25

饶智勇  22:34:27
现在你要开始写接口,
饶智勇  22:35:13
很遗憾的是,这个生成的类我们在开发中很少用到,一般还要自己重写
饶智勇  22:35:41
但是你现在先用这个吧,
卜回頭  22:35:45
为什么的?
饶智勇  22:36:00
没发现里面有很多方法我们用不到?
卜回頭  22:36:18
是很多,,,
饶智勇  22:36:20
而且存在一些性能问题,所以我们都是自己写的
饶智勇  22:37:30
而且如果你用了这个类,你要抽取他的接口的话,是很困难的,而且大多数方法我们用不到
饶智勇  22:39:10

饶智勇  22:39:27
然后我们看到这个类,这里我们就要开始用到spring 了
饶智勇  22:40:13
需要他的依赖注入为我们的持久化层和业务逻辑层进行很好的解耦
卜回頭  22:40:16
POJO是那个含有数据库表中对应字段为私有属性,然后有set/get 方法的类吗?
饶智勇  22:40:27
是的
饶智勇  22:40:49
专属名词,这样比较专业
饶智勇  22:40:50
呵呵
饶智勇  22:41:01
就是持久化对象
卜回頭  22:41:32
编写的接口主要是实现哪些功能的?
卜回頭  22:42:27
还是为实现功能提供一个与DAO的链接???
饶智勇  22:44:33
我们所谓的都是面向接口编程
饶智勇  22:45:21
你想要在程序中有多少功能,就定义多少接口,然后实现它
饶智勇  22:45:41
一般不是很多,crud
饶智勇  22:45:56
CRUD,增删改查
卜回頭  22:46:03
明白~!每个接口对应一个具体的功能
饶智勇  22:46:11
加上一些分页
饶智勇  22:46:32
基本的都是这些,然后就要看业务需求了
饶智勇  22:46:47
这块弄懂了没?
卜回頭  22:46:57
嗯嗯~!非常明白了
饶智勇  22:47:13
刚刚说到的spring
卜回頭  22:47:26
=
饶智勇  22:47:28

Sunshine  22:39:27
然后我们看到这个类,这里我们就要开始用到spring 了
卜回頭  22:48:37
业务需求,比如在一个学生成绩系统中,计算学生的平均分就是一个业务?对吗???
饶智勇  22:49:17
是的
饶智勇  22:49:28
你反应很快
饶智勇  22:49:49
可以下面的吗?
卜回頭  22:49:52
好的
饶智勇  22:50:24


然后我们看到这个类,这里我们就要开始用到spring 了
饶智勇  22:50:43
这一块,也就是你昨天出错的地方
卜回頭  22:51:06
用到的spring是不是,就是处理来自上一层的请求吗?并且做出响应的?
卜回頭  22:52:27
请求-》响应,都是上面我们定义的基本操作的一个实例???是不是的
饶智勇  22:52:35
其实这里面和UserDao中的实现是一样的,只不过是将UserDao进一步封装了,并且通过依赖注入解耦


饶智勇  22:53:34
错误,spring是负责业务逻辑层,struts是负责表现出,hibernate是负责持久层
饶智勇  22:53:54
请求响应时struts 做的事情
饶智勇  22:54:00
spring是负责业务逻辑层,struts是负责表现出,hibernate是负责持久层

饶智勇  22:54:01
spring是负责业务逻辑层,struts是负责表现出,hibernate是负责持久层

饶智勇  22:54:02
spring是负责业务逻辑层,struts是负责表现出,hibernate是负责持久层

卜回頭  22:54:02

饶智勇  22:54:03
spring是负责业务逻辑层,struts是负责表现出,hibernate是负责持久层

饶智勇  22:54:13
这个一定要有深刻的印象
卜回頭  22:54:57
业务逻辑???代表?
饶智勇  22:56:13
由于每个人的开发习惯不同,有的人喜欢由前台到后台,有的人反之,但是我们都建议,后者:持久层->务逻辑层  ->表现层
饶智勇  22:56:26
就是处理业务的
饶智勇  22:57:50
业务,就是business,就是一个单元(个人,组织等)给另一个单元提供的服务。逻辑(logic)就是指人们思考问题,从某些已知条件出发推出合理的结论的规律。所以逻辑不可能离开业务,
饶智勇  22:59:25

卜回頭  23:00:00
业务逻辑方面自己还需要看下资料,,,接着这里说吧
饶智勇  23:00:39
业务逻辑层
  用于做一些有效性验证的工作,以更好的保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。
  业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns of Enterprise Application Architecture》一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。
  业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。

饶智勇  23:00:50
这是网上下的定义
饶智勇  23:00:51
呵呵
饶智勇  23:01:15

饶智勇  23:01:19
这里懂不懂?
卜回頭  23:01:41
意思是依赖前面设计好的接口,不是很懂
卜回頭  23:02:10
这样说就明白了~!
饶智勇  23:08:17
以前在我们不用spring的时候我们都是这样做的,直接实例化对象的方式注入对象如:
public class A implements UserServiced{
private UserDao userDao = new UserDao();
........
public vid savae(Object obj){
userDao.save(Obj);
}
.....
}

当我们加入spirng 之后我们可以通过spring 的控制反转(IOC)进行注入
public class A implements UserServiced{
@Resource(name="userDao")
private UserDao userDao ;

........
public vid savae(Object obj){
userDao.save(Obj);
}
.....
}

饶智勇  23:08:42
这里就体现了解耦


饶智勇  23:11:10
spring 对业务逻辑没有侵入性,对别人没有依赖,当我们换掉 userDao的时候很轻松,而且不会对这个模块构成威胁报错


第一种就只是依赖UserDao userDao = new UserDao();     new UserDao();  



饶智勇  23:11:42
表示下...在不在


卜回頭  23:11:52



饶智勇  23:12:04
我这样说能看懂吗?

卜回頭  23:13:35
这里  private UserDao userDao = new UserDao();    
卜回頭  23:14:08
是所谓的构造函数注入吗?
饶智勇  23:16:08
spring 中有3种入方式,set方法、注解、构造器

但是 private UserDao userDao = new UserDao();    不是spring 的构造器注入方式

卜回頭  23:18:43
这个我明天消化下,
饶智勇  23:18:55
恩,

卜回頭  23:18:57
你要不去休息的?
饶智勇  23:19:27
开发中用的最多的还是set方法

饶智勇  23:19:40
我们明天早起
上课
饶智勇  23:19:45
一天的课
卜回頭  23:19:49

卜回頭  23:20:29
我们改次聊呀!早点休息吧!
卜回頭  23:20:40

饶智勇  23:20:44
你消化下啊,不晓得你能不能接受,我可能讲的不是很到位

饶智勇  23:21:09
我还有会,再写点代码
卜回頭  23:21:28
就是最后那里还有点,明天我看下资料,就可以的,前面的都明白了~!!!
饶智勇  23:21:55
那就好
卜回頭  23:22:15
多谢你哦!
饶智勇  23:23:05
不谢