java面试题:Spring框架常用面试题

说说什么Spring?

Spring是一套可以解决对象创建以及对象之间依赖关系的一种框架。且可以和其他框架一起使用;Spring与Struts, Spring与hibernate

说说SpringIOC、SpringAOP?
SpringIOC ,其实就是依赖注入、控制反转。相当于把每个bean与bean之间的关系交给第三方容器管理。而这个容器就是spring
SpringAOP 面向切面的编程,AOP是一种编程技术,允许程序模块化横向切割关注点,或横切典型的责任划分,如日志和事务管理。 SpringAop 就是用 Java的动态代理

Spring的底层实现机制是什么?

使用Demo4j(解析XML)+Java反射机制
Demo4j 其实就是解析XML。使用反射机制实例化bean

SpringAOP用到了什么代理?

JDK动态代理:对实现了接口的类生成代理
CGLib代理机制:对类生成代理
动态代理与静态代理区别?
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 
动态代理:在程序运行时,运用反射机制动态创建而成。 
Spring注入有那些方式?
Set注入
构造器注入
静态工厂的方法注入
实例工厂的方法注入

Spring有那些注解?

@Autowired(按类型注入)
@Service(标示为注入为服务层)
@Resource(按名称注入)
@Controller(标识控制器bean id)
@RequestMapping(表示映射URL路径)

Spring提供了一站式解决方案:
1.Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系
2.Spring Web Spring对web模块的支持。
可以与struts整合,让struts的action创建交给spring
spring mvc模式
3.Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】
4.Spring ORM spring对orm的支持:
既可以与hibernate整合,【session】
也可以使用spring的对hibernate操作的封装
5.Spring AOP 切面编程
6.SpringEE spring 对javaEE其他模块的支持

简述Spring的优缺点?

  Spring 的优点??
  1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦
  2.可以容易提供的众多服务,如事务管理,消息服务等
  3.容器提供单例模式支持
  4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
  5.容器提供了众多的辅助类,能加快应用的开发
  6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等
  7.spring属于低侵入式设计,代码的污染极低
  8.独立于各种应用服务器
  9.spring的DI机制降低了业务对象替换的复杂性
  10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部
缺点:
使用到了大量反射机制。反射机制非常占内存,

Last modification:November 13th, 2019 at 01:14 pm
如果觉得这篇技术文章对你有用,请随意赞赏

Leave a Comment