1.spring的话
Springaop指的是spring中的面向切面编程
它的核心原理是通过动态代理实现的
动态代理又分为
1.jdk自带的动态代理(默认的):通过反射来接收被代理的类,要求被代理的类必须实现一个接口,生成的代理对象的方法调用都会委托到Invocation.invoke()方法中(
当我们调用被代理类的方法时,这个调用都是传送进invoke方法中调用,在通过Proxy类反射出代理类对象
2.cglib代理(用于没有实现接口的类,通过生成子类,在子类中加入需求,得到代理类)
aop编程的具体过程为:
将需求变成切面类(aspect),委托类中的方法变成连接点(joinpoint)
(通知)拦截器(advice)控制织入(wave)到方法执行的位置
增强器(adivsor用来删选哪些方法为连接点,默认委托类所有的方法为连接点),一组连接点即为切入点(JoinPoint)
Springioc核心是控制反转和依赖注入,控制反转将对象的依赖关系交给ioc容器,实现了对象的解耦合,通过xml文件的配置相应的bean,spring容器进行管理
而依赖注入,则有三种注入方式:
1.构造方法注入
2.注解注入
3.set方法注入
spring提供了bean单例模式开发,但不保证是线程安全的
spring用ThreadLocal处理线程并发
Spring五种装配模式的区别
1.默认配置:需自行用标签设置依赖关系
2.byName:根据bean的name来查询一个匹配的bean
3.byType:根据bean的类型来查询一个匹配的bean
4.constructor:根据bean的构造器来查询一个匹配的bean,首先找合适带参数的
5.autodetect:先探测构造器装配,在选择byType的自动装配.
2.springmvc
SpringMVC处理步聚:先前端控制器把请求拦下来,让处理器映射器将对应的url匹配给对应的handler(默认完全匹配),
处理适配器决定handler里的哪个方法,handler返回的视图逻辑名给视图解析器解析成完整的资源路径)
Model(模型)
数据模型:提供要展示的数据,包含数据和行为,行为用来处理数据
View(视图)
负责进行模型的展示(jsp)
Controller(控制器)(servlet)
接收用户请求,委托给模型进行处理,将处理完毕的模型数据返回给视图
1.接收数据
2.处理数据
3.页面的显示
4.使用模型渲染视图(给jsp传值)
springmvc和struts2的区别
1.springmvc的入口是一个servlet(前端控制器:DispatchServlet),而struts2入口是一个filter过滤器
2.springmvc是基于方法开发(一个url对应一个方法),可以设计为单例或多例,struts2是基于类开发的,传递参数是通过类的属性
servlet的生命周期:
avax.servlet.Servlet接口中的init()、service()和destroy()方法来表示
1.加载和实例化
2.初始化
3.请求处理
4.服务终止
原文:https://www.cnblogs.com/nyhhd/p/12547469.html