Spring MVC基础

http://sishuok.com/forum/blogPost/list/5160.html

1 是什么

1.1 web MVC 设计模式

框架设计思想,将业务逻辑,页面相应控制,客户端请求与数据库处理分离出来,

达到结构清晰明了,使得代码更加容易修改和管理。

M- model

业务逻辑层

V-  view

业务展示层

C- controller

控制层,自己想要实现的功能在这里编写一些列的class来实现功能;


1.2  使用java 实现 web MVC 设计模式 的请求驱动类型的轻量级WEB框架

在原来的web c-s(客户与服务器相应模式中,多了controller 和 model,

一般所使用的web 服务器是TOMCAT

http://sishuok.com/forum/blogPost/list/5160.html


2  Spring 框架

2.1 spring 框架的模块

Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。
Spring MVC基础_第1张图片
转载自http://www.ibm.com/developerworks/cn/java/wa-spring1/
由浅入深的了解spring 框架
http://developer.51cto.com/art/201006/205212_all.htm

2.2 spring 框架中Model,  ModelAndView, ModelMap 等的区别

详细可见
http://www.cnblogs.com/google4y/p/3421017.html

http://itroop.iteye.com/blog/263845

2.3  Spring  中的反射机制

是大多数框架的基础,
反射机制就是用来解析java的类,接口,方法,属性等元素
方便了解JVM的运行机制——先查找到.class文件,加载类的Class对象,之后再可以用它来创建这个类的所有对象,
通过这些对象获得这个类的信息,然后通过java.lang.reflect包下API 来达到各种动态需求
以下是一个编程示例:

package myprojcet1;

import java.lang.reflect.Field;

class Student {
	String name;
	int age;
	//无参数构造方法
	public Student() {
		super();
		System.out.println("success!");
	}
	
	public Student(String name, int age) {
		super();
		this.name =name;
		this.age = age;
		System.out.println("this.age is : "+ this.age);
	}
}

public class ReflectNewInstance {

	public static void main(String[] args) throws Exception {
		Class clastu1 = Student.class; //获取class对象,field类
		Student obj = clastu1.newInstance();
		System.out.println(obj);
		//使用带参数的构造方法
		java.lang.reflect.Constructor constu1 = clastu1.getConstructor(String.class,int.class);
		Student stu1= constu1.newInstance("zhangsan",30);
		System.out.println(obj);
		
		Student stu2 = constu1.newInstance("liming",18);
		System.out.println(stu2.getClass().equals(stu1.getClass() ));
		System.out.println(stu2.getClass().equals(obj.getClass() ));
		
		System.out.println(stu1.name.compareTo(stu2.name) +" is bigger");
		System.out.println("stu1.age + stu2.age is "+ stu1.age +""+ stu2.age);
		
		//调用反射定义的一个通用的比较方法,
		System.out.println(compare(stu1, stu2).name + " is bigger");
	}
	
		public static Student compare(Student stu1, Student stu2) {
			try {
				Field field = stu1.getClass().getDeclaredField("age");
				field = Student.class.getDeclaredField("age");
				int val1 = (Integer)field.get(stu1);
				int val2 = (Integer)field.get(stu2);
				if (val1 > val2){
					return stu1;
				} else {
					return stu2;
				}
			} catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			return null;
		}
		
	}


http://www.blogjava.net/Todd/archive/2010/04/22/295112.html

Spring MVC 框架的易用之处在于,你可以按任意顺序定义请求处理方法的入参(除了 Errors 和 BindingResult 必须紧跟在命令对象/表单参数后面以外),Spring MVC 会根据反射机制自动将对应的对象通过入参传递给请求处理方法。这种机制让开发者完全可以不依赖 Servlet API 开发控制层的程序,当请求处理方法需要特定的对象时,仅仅需要在参数列表中声明入参即可,不需要考虑如何获取这些对象,Spring MVC 框架就象一个大管家一样“不辞辛苦”地为我们准备好了所需的一切。

https://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/


你可能感兴趣的:(springMVC,J2EE,web项目开发,对象,spring,mvc,web框架,设计模式,反射)