大纲部分:可参考
一、依赖注入的三种方式:(1)接口注入(2)Construct注入(3)Setter注入
AbstractAutowireCapableBeanFactory进行构造和管理bean,其中,如果没有使用工厂或默认构造方法constructor-arg进行实例化,则默认使用cglib,而不是反射机制实例化bean。可参考,实例化后,开始装配bean(即赋值对象变量,或注解或xml配置成员变量参数),将注解或配置变量装配传递进去,其实实际的装配操作是通过AutowiredAnnotationBeanPostProcessor完成的(所有BeanPostProcessor实现类在bean实例化前后都会被调用对应方法)。
二、
请求拦截:过滤器(Filter,回调机制,职责链模式。拦截来自浏览器的请求)
AOP部分:分为两种,Spring AOP(动态代理模式,反射,由spring实现的一个aop,常通过注解或配置实现,可针对任意的方法并可反射获取该方法参数)和拦截器类(通过继承HandlerInterceptorAdapter实现。更精确拦截,请求前后做操作,获取request和response参数和返回的ModelAndView等)。
1、BeanFactoryPostProcessor和BeanPostProcessor的区别:Spring初始化bean的扩展点,在spring实例化任何bean之前读取元数据。可参考,PropertyResourceConfigurer 是BeanFactoryPostProcessor的一个实现类,来读取配置文件,提供构造参数中{name}这种实现。
2、了解Advice(通知)、Joinpoint(连接点)、Pointcut(切点)、Advisor(通知器)的概念。可参考
a、Advice(通知),定义具体要做什么,如上面所说的日志记录、安全控制。有时也称为“增强”,对目标方法进行功能增强。
b、Joinpoint(连接点),定义通知执行的代码位置,如在哪个方法执行。
c、Pointcut(切点),定义通知在哪些连接点上执行,即定义连接点的一个集合,通常配置一个正则表达式匹配一系列方法集合。
d、Advisor(通知器),将通知和切点关联起来,定义了哪个通知用于哪个切点。
3、AdvisedSupport存放包装了目标对象的TargetSource和其所有的Advisor,所以在JdkDynamicAopProxy获取代理对象并执行时,会去找对应的所有Advisor(有待验证这句话)。可参考文章,可参考,可参考2
三、监听事件 ApplicationListener 和 ApplicationEvent:
在ApplicationContext调用refresh()初始化时,会初始化listeners并放到集合中,当通过ApplicationContext.publishEvent(event);时,就会遍历所有listeners执行。其实就是用来观察者模式。
下面两个监听器也很好用,直接在web.xml配置就可以了:
如果你想让你的类监听应用的启动和停止事件,你就得实现ServletContextListener接口;
如果你想让你的类去监听Session的创建和失效事件,那你就得实现HttpSessionListener接口。
四、注解:
1)@Controller只是标记,真正@RequestMapping才是映射URL到对应的处理器。
2)@RequestParam绑定Request中的参数值到控制处理器的方法参数中。支持参数有HttpServlet类的,@ModelAttribute,spring的modeMap,MultipartFile上传文件,实体类等。而返回支持ModelAndView ,View 对象,String,void(已通过response返回),
3)@Autowired 可参考
4)@responsebody表示该方法的返回结果直接写入HTTP response body中
一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。
5)@Configuration和@Bean的使用,直接用代码来代替xml配置文件。spring扫描到该注解,会将对应的bean放到容器中。
1、介绍Spring的IOC和AOP,分别是如何实现的(反射机制和动态代理)
2、Redis如何处理分布式服务器并发造成的不一致,如果数据库不提供隔离呢?
3、解释MySQL索引、b树,为啥不用平衡二叉树或红黑树(磁盘与内存的存储方式不同)
4、Spring的bean加载机制,bean生成的具体步骤
5、IOC的注入方式(set注入、构造方法注入)
6、Spring何时创建applicationContext(web.xml中使用listener)
7、listener是监听哪个事件
8、SpringMVC的具体流程
9、Spring的特性,SpringMVC中控制器的名字及其配置
10、Spring用到哪些设计模式?
DispatcherServlet中HandlerAdapter适配器模式,
11、controller怎么处理的请求
相关推荐
nodejs010-nodejs-cryptiles-0.2.2-1.el6.centos.alt.noarch.rpm
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
基于麻雀搜索算法优化的深度置信网络(SSA-DBN)参数调整与数据分类预测——以隐藏层节点、迭代次数和学习率为优化目标的MATLAB实现,基于麻雀搜索算法优化深度置信网络(SSA-DBN)的数据分类预测 优化参数为隐藏层节点、迭代次数和学习率 利用交叉验证抑制过拟合问题 matlab代码, ,SSA-DBN; 参数优化; 隐藏层节点; 迭代次数; 学习率; 交叉验证; 过拟合抑制; MATLAB代码,基于SSA-DBN优化的数据分类预测方法:参数优化与过拟合抑制
BeTheme第一次发布于2014年5月21日,自那时以来,已有数以百万计的人下载了BeTheme,其评分为4.8。这个主题是WooCommerce支持的,在此帮助下,您可以制作一个电子商务网站,还可以制作博客、新闻和其他类型的网站。BeTheme 21.5.6 wordpress主题模板特点:放大器支撑多用途主题500+预制件演示单击演示安装移动友好型主题联络表格7支持自转滑块。
基于S7-200智能控制与组态王4x3界面的书架式堆垛立体车库系统设计与应用,基于S7-200和组态王4x3书架式堆垛式立体库立体车库 ,S7-200; 组态王4x3; 书架式堆垛式立体库; 立体车库,基于S7-200与组态王4x3的立体车库系统
1、文件内容:pykde4-akonadi-4.10.5-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pykde4-akonadi-4.10.5-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
基于28379D的异步电机无速度传感器控制:MD500与MD500E滑模同步调制代码研究,各种代码md500代码,异步电机,基于28379D,带无速度传感器控制,参数辨识,同步调制等功能。 还有md500e代码,滑模无感代码,逆变整流代码 ,核心关键词:md500代码; 异步电机; 28379D; 无速度传感器控制; 参数辨识; 同步调制; md500e代码; 滑模无感控制; 逆变整流代码。,基于28379D的MD500电机异步控制系统与参数辨识软件
"可再生能源驱动的热电联供微网经济运行优化研究:基于具体文献的程序复现与MATLAB粒子群算法应用",含可再生能源的热电联供型微网经济运行优化 有具体文献 程序复现 MATLAB粒子群算法 ,核心关键词: 可再生能源; 热电联供型微网; 经济运行优化; 具体文献; 程序复现; MATLAB粒子群算法。,含可再能源热电联供型微网运行优化策略复现于特定文献中的MATLAB模型研究。
1、文件内容:pyserial-2.6-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pyserial-2.6-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
finishBitmap.jpg
"英博尔控制器调速软件全面升级,引领行业新风尚",英博尔控制器调速软件全新 ,英博尔; 控制器; 调速软件; 全新,英博尔控制器调速软件全新升级
电机定子模态频率计算方法及公式在Excel表格中的应用,电机定子模态频率计算公式,公式法,exl表格 ,电机定子模态频率计算公式; 公式法; EXL表格,电机定子模态频率计算方法及公式法在Excel表格中的应用
一、项目简介 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 二、技术实现 jdk版本:1.8 及以上 ide工具:IDEA或者eclipse 数据库: mysql5.5及以上 后端:spring+springboot+mybatis+maven+mysql 前端: vue , css,js , elementui 三、系统功能 1、系统角色主要包括:管理员、用户 2、系统功能 主要功能包括: 用户登录注册 首页 个人中心 修改密码 个人信息 用户管理 管理员管理 问卷管理 题目管理 题目统计 问卷调查管理 新闻资讯管理 轮播图管理 问卷调查 新闻资讯 个人中心 问卷调查记录 后台管理 详见 https://flypeppa.blog.csdn.net/article/details/143189415
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
1、文件内容:pulseaudio-esound-compat-10.0-6.el7_9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pulseaudio-esound-compat-10.0-6.el7_9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
一种基于Lifelogging视频的文本标签生成模型.pdf
MATLAB仿真:MIMO系统FLMS算法的优化与实现,一个mimo系统的flms算法的MATLAB仿真 ,Mimo系统; FLMS算法; MATLAB仿真,"MIMO系统FLMS算法MATLAB仿真"
"基于S7-200 PLC的组态王燃油锅炉控制系统:详解梯形图接线原理、IO分配及组态画面图解",基于S7-200 PLC和组态王燃油锅炉控制系统 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,S7-200 PLC; 组态王燃油锅炉控制; 梯形图接线图原理图; IO分配; 组态画面,基于S7-200 PLC的燃油锅炉控制系统原理图及IO分配解析
方便暖通工程师及板换用户了解艾普尔板式换热器选型计算,免费使用。