SSM--->框架
1、什么是控制反转(Inversion of Control)与依赖注入(Dependency Injection)和aop
ioc:ioc提供了容器不需要我们手动创建对象,而且ioc非常强大的DI依赖注入,可以通过配置的方式帮我们导入bean依赖的其他的bean自动注入进去,通过Type或类型的方式,正因为依赖注入,ioc实现了非常强大的解耦,绝大多数的bean都是单例的,不必要去考虑单例的问题(service、mapper、controller)
DI:依赖注入是实现控制反转的常见实现方式,依赖注入就是将应用程序所依赖的组件在运行的时候动态加载到程序中
aop:面向切面编程,我们在很多类里面加入相同的代码,非常麻烦的(log,事务),提高代码复用性(高内聚低耦合),动态代理模式实现(jdk原生动态代理(实现接口),cglib)
2、ioc的启动过程,把那个流程说一遍。
第一个阶段是容器的启动阶段,第二个阶段是 Bean 实例化阶段
3、哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入
两种依赖方式都可以使用,构造器注入和Setter方法注入。最好的解决方案是用构造器参数实现强制依赖,setter方法实现可选依赖。
4、bean的作用域都有哪些?默认是什么。
singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例(默认)
prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例
request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效
session:对于每次HTTP Session,使用session定义的Bean豆浆产生一个新实例。同样只有在Web应用中使用Spring时,该作用域才有效
globalsession:每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。典型情况下,仅在使用portlet context的时候有效。同样只有在Web应用中使用Spring时,该作用域才有效
5、SpringMVC原理
Mapping(映射器)--->adapter(适配器)--->视图解析器--->返回view
6、#和$的区别,这块问过的最多的问题就是这个。
#能够防止sql注入。推荐使用。
‘#:用于变量替换,$:实质上是字符串拼接