Spring框架简单介绍



Spring框架简单介绍、

天来看一看Spring。

国内搞Java开发的朋友们,对Spring一定不会陌生。

Spring的历史?

谈起Spring,就会想起Ejb2.0。尽管,现实中有很多基于Ejb2.0的成功系统,但是Ejb2.0并没有实现它的最初设想:简化企业级应用开发。Ejb的声明式编程模式的确简化了很多基础架构层面的开发,比如事务、安全等等,但是Ejb2.0的模板式编码让人感到异常复杂。

为了简化Ejb,Spring诞生了。Spring以AOP和IOC为核心,为JavaBean提供了像Ejb一样强大的功能,这些技术为POJO提供了类似于Ejb的声明式编程模型,[......]

Read more

Spring IOC



Spring IOC。Spring框架有两大核心:IOC和AOP。Spring中其他很多强大的应用,都是基于IOC和AOP开发的。今天,我们来聊一聊IOC。

关于IOC,网上有很多精彩的文章介绍,我先给大家推荐几篇对IOC理解比较好的文章:

从生活中看SpringIOC原理

Spring IOC原理解析

大家在网上搜IOC,一定会找到DI的概念,其实IOC与DI讲的是一个意思,他们只是从两个角度描述了Spring IOC容器管理对象依赖关系。

IOC控制反转:说的是创建对象实例的控制权从代码空值剥离到IOC容器控制,实际就是你的xml文件控制,侧重于原理;[......]

Read more

Spring AOP

Spring AOP

本文来介绍Spring的AOP。

 

为什么使用AOP?

使用纯面向对象的思想进行编程。那么对象不但需要处理自身要负责的业务逻辑,要需要关心日志、安全控制和事务。如下图:

图1

 

对遍布系统的关注点服务的调用,经常非常分散。如日志和安全。

 

AOP使这些服务模块化,并以声明的方式将它们应用到它们需要影响的组件中去。结果使这些组件具有高内聚以及更加关注自身业务,完全不需要了解可能涉及的系统服务的复杂性。所以:AOP确保POJO保持简单,AOP是OOP的最好的补充与完善。

利[......]

Read more

Spring之AOP

Spring之AOP

本文来介绍Spring的AOP。

 

为什么使用AOP?

使用纯面向对象的思想进行编程。那么对象不但需要处理自身要负责的业务逻辑,要需要关心日志、安全控制和事务。如下图:

图1

 

对遍布系统的关注点服务的调用,经常非常分散。如日志和安全。

 

AOP使这些服务模块化,并以声明的方式将它们应用到它们需要影响的组件中去。结果使这些组件具有高内聚以及更加关注自身业务,完全不需要了解可能涉及的系统服务的复杂性。所以:AOP确保POJO保持简单,AOP是OOP的最好的补充与完善。

利[......]

Read more

tomcat配置文件server.xml详解

tomcat配置文件server.xml详解

元素名

属性

解释

server

port

指定一个端口,这个端口负责监听关闭tomcat的请求

shutdown

指定向端口发送的命令字符串

service

name

指定service的名字

Connector(表示客户端和service之间的连接)

port

指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求

minProcessors

[......]

Read more

Hibernate缓存机制解析

Hibernate缓存机制解析。Hibernate是基于缓存机制实现的。Hibernate的缓存包括:一级缓存、二级缓存和查询缓存。Hibernate中支持懒加载load,也支持及时加载get。Hibernate采用CGlib的动态代理实现延迟加载。延迟加载采用CGlib的Enhancer类动态生成类。

比较
下面对Hibernate中一级缓存、二级缓存、查询缓存机制做一个横向比较:

相同点:
1、均为缓存,均可在一定的条件下缓存数据;
2、Hibernate的查询实现,是基于缓存机制;
3、三种缓存方式的内部实现方式类似,均使用key-value的map键值对方式实现;[......]

Read more

Struts1、Struts2和SpringMVC剖析

Struts1、Struts2和SpringMVC剖析前段框架用了不少,今天就来做个总结。网上关于Struts1、Struts2、SpringMVC的文章有很多,这里的内容就是基于它们,来做个比较。

这三个框架是按照上面的顺序,依次出现的,它们都是对MVC模式的实现。为什么会出现这三个、甚至更多的MVC框架呢?他们都是为了将URL世界映射到Java世界。尽管它们它们内部的实现思路不同,有着各自的优缺点,但是它们都做到了个自己的使用目的。
历史介绍
大多Web应用程序,都是运行在HTTP上的。HTTP协议是一系列无状态的文本传输协议。无状态的协议不记录收到的多个请求之间的关系,也就是说[......]

Read more

java 多线程synchronized同步关键字知多少

java 多线程synchronized同步关键字知多少。每一个对象都有一把独占锁。独占锁只限制线程对它的同步方法的访问,对非同步方法,独占锁没有意义。

synchronized关键字可以作为函数的修饰符,也可以作为函数内的语句,也就是平时说的同步方法和同步代码块。如果再细分的话,synchronized可以作用域instance变量、对象引用、static函数和类上。

不过无论synchronized关键字加载方法上还是对象上,它取得的锁都是对象锁。而不是把一段代码或者函数当做锁。所以说,尽管我们对方法进行了同步,该同步方法还是有可能被其他线程的对象访问的。

作用域

1、[......]

Read more

java如何确定线程数

java如何确定线程数.一般情况下,在互联网编程中,我们会使用多线程来抢夺网络资源。那么,线程数量我们如何来确定呢?

我们都知道,线程数量和CPU核数有关。所以有人建议说:线程数为核数的两倍最好。
其实只要这些线程不频繁切换、竞争资源的话。想要最优性能,还是根据具体项目慢慢调试。
CPU切不切换我们没法控制,只能提高线程优先级以获取更多的CPU时间。
CPU除了处理Java还需要处理N多系统和其他线程,一般而言,多线程编程中,在确保内存不溢出的情况下提升线程数是可以提高CPU中签率的,也就是能提高你的程序处理数据的速度。

不过,即使没有溢出,也不是线程数越大越好,线程切换毕竟[......]

Read more

java并发下的事务处理

java并发下的事务处理.事务保障,是软件行业必须要做的事情。很多金融公司,就是由于事务处理不得当而倒闭。我们都知道,事务有四大特性:ACID。即:原子性、一致性、隔离性、持久性。

 

四大特性

原子性

事务是数据库的逻辑单位,事务总包括的诸操作那么全部执行,要么都不执行;

 

ps:原子操作能保证线程安全,非原子操作就是线程不安全,通过使用锁或其他非堵塞方式实现某个时间只能有一个线程操作同一个资源。

 

一致性

职务执行的结果,必须使数据库从一个一直状态、变到另一个一直状态。一致性与原子性紧密关联。

隔离性[......]

Read more