成功来自于理念,而不是技术本身,包括IOC(Inversion of Control,控制反转)和AOP(AspectOriented Programming,面向切面编程)
SpringIOC
在spring里面,java的一切资源都是javabean,容器的目标是管理这些bean和它们之间的关系,所以在里面装载各种bean,包括javabean的创建事件行为。依靠自己的描述完成对对象的创建以及其以来关系。
Socket socket=new Socket1();
User.setSocket(socket);
User.useSocket();
如果使用其他的插座socket的服务就要修改代码。Socket和实现类Socket1耦合了。
使用XML描述的方式
<bean id=”socket” class=”Socket1”>
<bean id=”user” class=”xxx.user”>
<propertyname=”socket” ref=”socket”/>//找到当前配置里面的bean
</bean>
实现解耦功能
SpringAOP
IOC的目标是为了管理Bean,而bean是Java面向对象OOP的基础设计。
SpringAOP常用于数据库的编程,如果下一步失败,会使用数据库的事务的回滚功能区回滚事务,使第一步的数据库更新也作废。SpringAOP是通过异常为消息回滚。
Private void proceed(Order order){
Booleanpflag = peoductionDept.isPass(order);
If(pflag){
If(financialDept.isOverBudget(order)){
Throwsnew RuntimeException(“预算超限!”);
}
}
}
看到数据库的代码,也没有复杂的try catch finally语句,在现实编程中,这些东西都被Spring屏蔽了,不需要关注它,只要关注业务代码。知道了发生了异常,spring回滚事务就足够了。
MyBatis简介
前身是Apache的开源项目iBatis,基于java的持久层框架。
优势在于灵活,它几乎可以代替JDBC,同时提供了接口编程。
目前数据访问层DAO data access objects 是不需要实现类的,它只需要一个接口和xml
无论是MyBatis还是Hibernate都是依靠某种方法,将数据库的表和pojo映射起来的。
Hibernate回根据映射关系生成对应的sql,只要懂得操作pojo就能够操作对应数据库的表。
在管理系统时代是十分有利的,对管理系统而言,首先在于实现业务逻辑没任何才是性能,所以Hibernate成为了那个时代的主流的持久框架。
MyBatis不屏蔽sql,不屏蔽的好处在于,可以自己制定sql规则,这样能够更加精确地定义sql,从而优化性能。
符合移动互联网高并发,大数据,高性能,高响应的要求。
SpringMVC简介
MVC
@ResponseBody springmvc就可以通过其消息转换系统,将数据转换为json
最流行的NoSQL-Redis
NoSQL Not Only SQL
作为一种缓存工具,具备一定持久层的功能
存储的数据都是半结构化的,将数据在读入内存中有更少的规则,读入速度更快
特点:
1. 响应快速,每秒110000哥写入操作,或者81000个读操作
2. 支持6种数据类型:字符串,哈希结构,列表,集合,可排序集合和基数。
3. 操作都是原子的,得到的都是更新后的值,最新的
4. MultiUtility工具。支持发布加订阅