Java面试系列——笔试
1、FileSystemResource 和 ClassPathResource 有何区别?
在 FileSystemResource 中需要给出 spring-config.xml 文件在你项目中的相对路径或者绝对路径。在 ClassPathResource 中 spring 会在 ClassPath 中自动搜寻配置文件,所以要把 ClassPathResource 文件放在 ClassPath 下。
如果将 spring-config.xml 保存在了 src 文件夹下的话,只需给出配置文件的名称即可,因为 src 文件夹是默认。
简而言之,ClassPathResource 在环境变量中读取配置文件,FileSystemResource 在配置文件中读取配置文件。
2、Spring 框架中都用到了哪些设计模式?
Spring 框架中使用到了大量的设计模式,下面列举了比较有代表性的:
o 代理模式—在AOP和remoting中被用的比较多。
o 单例模式—在spring配置文件中定义的bean默认为单例模式。
o 模板方法—用来解决代码重复的问题。比如.RestTemplate,JmsTemplate,JpaTempl ate。
o 前端控制器—Spring提供了DispatcherServlet来对请求进行分发。
o 视图帮助(ViewHelper)—Spring提供了一系列的JSP标签,高效宏来辅助将分散的代码整合在视图里。
o 依赖注入—贯穿于BeanFactory/ApplicationContext接口的核心理念。
o 工厂模式—BeanFactory用来创建对象的实例
3、开发中主要使用 Spring 的什么技术 ?
1. IOC 容器管理各层的组件
2. 使用 AOP 配置声明式事务
3. 整合其他框架.
4、简述 AOP 和 IOC 概念 AOP:
Aspect Oriented Program, 面向(方面)切面的编程;Filter(过滤器) 也是一种 AOP. AOP 是一种新的方法论, 是对传统 OOP(Object-Oriented Programming, 面向对象编程) 的补充. AOP 的 主要编程对象是切面(aspect), 而切面模块化横切关注点.可以举例通过事务说明.
IOC: Invert Of Control, 控制反转. 也成为 DI(依赖注入)其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源.作为回应, 容器适时的返回资源. 而应用了 IOC 之后, 则是容器主动地将资源推送 给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源. 这种行为也被称为查找的被动形式
5、在 Spring 中如何配置 Bean ?
Bean 的配置方式: 通过全类名(反射)、通过工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean