关于SpringMVC的一点个人总结

首先,我们得明白MVC是一种经典的设计模式,是代码分层的思想:
1.M(Model):业务层,模型层,用来处理业务。service
2.V(View):视图层,用来显示数据。
3.C(Controller):控制层,用来处理请求,进行调度。
使用它可以降低代码的耦合度,便于团队开发及维护。
#基于注解的springmvc应用
##编程步骤
step1.导包
step2.添加spring配置文件
step3.配置DispatcherServlet
step4.写Controller
a.不用实现Controller接口。
b.可以添加多个方法。
c.方法名称不作要求,返回值的类型可以是ModeAndView,也可以String。
d.添加@Controller。
e.在类名前或者@Rec前添加@RequestMapping
注:@RequestMapping的作用相当于HandlerMapping。
step5.写jsp
step6.配置视图解析器,配置组件扫描,配置springmvc注解扫描

##如何写一个拦截器
step1.写一个java类,实现HandlerInterceptor接口
step2.将拦截器处理逻辑写在相应的接口方法
preHandle方法:前端控制器先调用拦截器的preHandle方法,如果该方法返回值为true
则拦截器继续向后调用,如果该方法返回值为false,
则拦截器不再向后调用,请求处理完成
postHandle方法:处理器方法已经执行完成,正准备将ModelAndView对象返回给前端控制
器之前执行。可以在该方法里面,修改MOdelAndView对象。
afterCompletion方法:最后执行的方法,要注意,如果preHandle方法返回值为false,该方法不会执行
step3.配置拦截器

##让spring框架来处理异常
将异常抛给spring,由spring框架来处理异常
方式一:使用简单异常处理
方式二:使用ExceptionHandler来处理登录中产生的异常

面向切面编程
在软件中执行切面功能的组件,是一种“拦截器”组件。
通知:
发生切向事件的位置点
Bean名进行切入
bean(beanId)
如:bean(userService)
bean(noteService)
bean(Service)
多个Bean
bean(userService)|| bean(noteService)
类限定名:包和类进行切入
within(包名.类名)
如:within(cn.tedu.note.service.UserService)
within(cn.tedu.note.service.
)
within(cn.tedu.note.service.*Service)
within(cn.tedu.note…*Service)
方法限定名:切入到特定方法
execution(*包.类.方法(参数))
如:
execution(*cn.tedu.note.service.UserService.login(…))
execution(cn.tedu.note.service.UserService.find(…))
execution(cn.tedu.note.service.Service.find(…))
execution(cn.tedu.note.service..find
(…))
execution(*cn.tedu.note.service.*Service.login(…))
AOP是如何做到的
1.采用反射动态代理模式实现。

动态代理技术
1.JDK的反射API提供了动态代理,JDK的动态代理必须依赖于接口
2.CGLIB API提供了基于类的动态代理
3.Spring会自动的使用如上API,在有接口的时候,优先选JDK代理,如果没有接口,会自动利用CGLIB代理。
Spring的AOP底层就是利用动态代理技术实现的。
动态代理技术
1.JDK的反射API提供了动态代理,JDK的动态代理必须依赖于接口
2.CGLIB API提供了基于类的动态代理
3.Spring会自动的使用如上API,在有接口的时候,优先选JDK代理,如果没有接口,会自动利用CGLIB代理。
Spring的AOP底层就是利用动态代理技术实现的。

Servlet和filter的区别
Servlet:是一段运行在服务器端的程序,可以动态的生成WEB页面。
filter:是一段可以复用的代码,不能产生请求和响应,只能对请求进行相应的处理
生命周期:Servlet,web服务器启动或接收到请求的时候,初始化实例(load_on_startup=2),优先级取决于数字大小
每一次请求都会调用doGet或doPost方法,停止web服务器时,实例被销毁。
filter:web服务器启动就实例化filter。每次请求调用doFilter,停止web服务器时,
就实例化一个filter
在java中filter可以完全替代Servlet。反之不行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值