spring架构图
core:ioc和aop
扩展框架:spring mvc,dao,jdbc
一 概念:
spring是一个框架,可以理解为一个IOC容器,容器里装着bean,bean可以理解为一个类;早起版本只有core,其他组件都是后来新版本逐步新加的
spring mvc是web自框架,与其他web框架例如struts2
二原理:
1 spring mvc原理
web程序启动时,ContextLoaderServlet加载xml配置文件,初始化DispatchServlet--------http请求-------容器(Tomcat)解析http---------request-------映射关系(路径,方法,参数)--------DispatchServlet---------HandlerMapping--------HandlerAdapter-- ----controller-------ModelAndView------------ViewResolver-------View------render
interface FrameworkServlet{
private webApplicationContext;
public initFrameworkServlet(){//初始化HandlerMappings类的对象}
public doGet(){serviceWrapper();}
public doPost(){serviceWrapper();}
public serviceWrapper(){doService() ;}
public doService(){doDispatch(request,
response);}
doDispatch(request, response){
HandlerExecutionChain mappedHandler = null;
//从HandlerMappings list列表中取HandlerMapping对象;每个HandlerMapping对象代表一个Controller和URL的映射
//其实在运行的时候是一个HandlerExecutionChain和URL的映射,而HandlerExecutionChain对象其实就是对Controller和它 //interceptors的一个包装器,可以把HandlerMapping看成Controller和URL的映射
mappedHandler = getHandler(processedRequest, false);
}
}
DispatchServlet
implement FrameworkServlet
三xml配置
web.xml
applicationcontext.xml
<servletname>servlet.xml
action.xml
service.xml
dao.xml
四注解
1 bean相关注解
@Component 对比较中立的类进行注解,现在不推荐使用
@controller 表现层bean,即structs框架的action
@service 业务层bean
@Repository 数据访问层bean
@scope范围
sigleton,proproty,request,session,global session
2 spring mvc相关注解
@handlemapping
handleradapter
resolveview
view
3 数据绑定
httprequest与注解方法参数之间的转换称之为数据绑定 data bind
五 面向切面编程AOP
简介:对公共行为的抽象,包括日志,权限,异常处理,事务处理
1 反射机制 reflection,也称内省inrospection
java程序可以加载一个运行时才得知名称的class,获悉其完整构造,并生成其对象实体,或设置field值,或调用method
通过java.lang.Class java.lang.reflect包中的Method,Field,Constructor等实现
2 动态代理与CGLIB代理
动态代理:自定义handler InvorcationHandler
3 基本概念
连接点join point:程序运行某个阶段的点,例如方法调用,异常抛出
切入点pointcut:连接点集合,需要注入adive位置的地方,指明advice在什么条件下才能触发
advisor:连接pointcut和adive的配置器
通知advice:某个连接点所采用的处理逻辑
4 基于xml配置的aop
<aop:config>
<aop:pointcut/>
<aop:aspect>
</aop:aspect>
</aop:config>
5 基于@AspectJ注解的aop
AspectJ是AOP的一种实现,spring集成了它
@Aspect
@Pointcut
@Before等
本文详细介绍了Spring MVC的工作原理及配置方式,包括DispatcherServlet如何处理HTTP请求、数据绑定过程等,并深入探讨了面向切面编程(AOP)的概念及其在Spring中的应用。
1678

被折叠的 条评论
为什么被折叠?



