SpringMVC 的核心原理:
1,用户发送请求给服务器:url:user.do
2,服务器收到请求。发现DispatchServlet 可以处理。于是调用DispatchServlet。
3,DispatchServlet 内部,通过HandleMapping 检查这个url 有没有对应的Controller。如果有,则调用Controller.
4,Controller 开始执行。
5,Controller 执行完后,如果返回字符串,则ViewResolver 将字符串转化成相对应的视图对象;如果返回ModelAndView ,该对象本身就包含了视图对象信息。
6,DispatchServlet 将执行视图对象中的数据,输出给服务器。
7,服务器将数据输出给客户端。
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在,并通过这个唯一实例来向系统提供实例行为。这样的模式有几个好处:
1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。
2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。
3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。应用场合是系统需要唯一该类的实例,比如说资源管理器等。
单例模式类图:
下面是示例代码:
public class Singleton { // none-lazy load private static Singleton singleton = new Singleton(); private Singleton(){ } public static Singleton getSingletonInstance(){ return singleton; } // lazy load /*private static Singleton singleton = null; private Singleton() { } public static Singleton getInstance() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; }*/ }
makefile命令的基本格式:
Target : prerequisites ....
command
Target是要生成的东西,冒号后则是生成该目标所依赖的东西。而command则是make执行的命令。
千言万语,都不如一个简单的例子来的明了。
main : main.o func.o
gcc -o main main.o func.o
main.o : main.c head.h
gcc -c main.c
func.o : func.c head.h
gcc -c func.c
clean :
rm main.o func.o