1、Spring之IoC/(DI)和AOP
依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念
依赖注入有三种注入方式:属性注入,构造器注入,工厂注入(静态工厂和实体工厂)
依赖注入的底层实现机制:反射机制
面向切面编程(AOP):分为前置通知、切面、后置通知、异常通知
前置通知:在方法执行前执行
切面:相当于要实现的功能
后置通知:在方法执行后执行
异常通知:在方法抛出异常后执行
面向切面编程的底层实现机制:动态代理
2、Spring、SpringMVC、Springboot的区别
Spring就是一个大的bean工厂,存储Bean的容器
常见的bean对象如:dataSource、事务、以及我们用的@Component 组件(spring的bean对象)@Controller 控制器@Service 服务@Repository 仓库注解后经过自动臊面
都会形成bean对象
SpringMVC:这个容器就相当于 一个请求发送过来后,经过SpringMVC容器获取,分析后进行对应spring容器里相应bean对象的转发,返回的值在经过SpringMVC容器响应给前端页面
Springboot:相对于Spring和SpringMVC主要的区别在于简化配置、内嵌Web服务器(Tomcat、Jetty等)、提供POM,简化Maven配置
3、Mybaites中$和#的区别
$:不能防止SQL注入
#:可以防止SQL注入
原因说明:$替换什么是什么,#是已占位符(?)的形式进行替换会默认加单引号(‘’)
4、WebService有哪些优势?
互操作性、跨平台性:应用程序可以使用Webservice以任何语言与另一个应用程序进行交互
更便宜的沟通成本:WebService确实使用SOAP over HTTP来允许任何人使用已经存在的用于WebService的Internet
5、ActiveMQ的作用总结(应用场景及优势)
业务场景说明:
队列的主要作用是消除高并发访问高峰,加快网站的响应速度。
在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧。
在使用队列后,用户的请求发给队列后立即返回,
(例如: 当然不能直接给用户提示订单提交成功,京东上提示:“您提交了订单,请等待系统确认”),
再由消息队列的消费者进程从消息队列中