欢迎访问宙启技术站
智能推送

Spring,hibernate,struts常见的面试题有哪些

发布时间:2023-05-15 13:05:30

1. Spring常见面试题

1.1 什么是Spring框架?

Spring是一个开源的、轻量级的应用框架,包含了多个组件,如IoC、AOP、MVC、ORM等,可以帮助开发者简化编码和提高软件质量。

1.2 什么是IoC容器?

IoC(Inversion of Control,控制反转)是Spring框架的核心,它可以将需要处理的对象的创建、依赖关系等操作交给Spring的容器来处理,所以也叫做容器。IoC容器可以实现对象之间的解耦合,增加代码的灵活性和可扩展性。

1.3 Spring中的AOP是什么?

AOP(Aspect-Oriented Programming,面向切面编程)是一个编程范式,可以将通用的功能(如日志、安全、事务等)从业务代码中抽离出来,以切面的方式关注于程序的横向逻辑。Spring中的AOP可以通过拦截器、切点、通知等实现,可以帮助开发者解耦业务代码和通用功能。

1.4 Spring中的事务是什么?

Spring中的事务管理机制可以帮助开发者实现对数据库操作的事务控制,其中包括事务的开始、提交、回滚等操作。Spring使用的是声明式事务管理的方式,可以通过注解或XML配置来定义事务的属性(如传播行为、隔离级别等)。

1.5 Spring中的MVC是什么?

Spring MVC是基于MVC(Model-View-Controller)的Web框架,可以帮助开发者实现Web应用程序的分层设计,其中包括控制器、模型、视图等组件。Spring MVC还提供了一些特性,如RESTful风格、国际化、文件上传等。

2. Hibernate常见面试题

2.1 什么是Hibernate框架?

Hibernate是一个开源的、轻量级的ORM(Object-Relational Mapping)框架,可以将Java对象与数据库表进行映射,简化了对数据库的操作。Hibernate还包含了多个组件,如事务管理、缓存等。

2.2 Hibernate中的Session是什么?

Hibernate的Session类是连接数据库、进行CRUD(Create、Retrieve、Update、Delete)操作的主要接口。每个线程可以拥有一个Session对象,通常在DAO(Data Access Object)中创建和关闭Session对象。

2.3 Hibernate中的HQL是什么?

HQL(Hibernate Query Language)是Hibernate提供的类SQL查询语言,可以避免使用直接SQL语句对数据库操作的风险。HQL支持对实体类进行查询、过滤和排序等操作,语法类似于SQL语句。

2.4 Hibernate中的级联操作是什么?

级联操作可以实现一个操作所带来的数据库同步操作扩展到该操作关联的所有对象上。Hibernate提供了多个级联操作类型,如ALL(全部)、SAVE_UPDATE(保存或更新)、DELETE(删除)等,可以在对象的映射文件中配置。

2.5 Hibernate中的二级缓存是做什么的?

Hibernate中的二级缓存是位于SessionFactory层面的缓存,可以提高系统的性能。二级缓存可以缓存类、集合、查询等数据,对于频繁被访问的数据,可以减少数据库操作的次数。Hibernate提供了多个缓存实现,如EHCache、OSCache等。

3. Struts常见面试题

3.1 什么是Struts框架?

Struts是一个开源的MVC框架,可帮助开发者设计和实现Web应用程序,其中包括表单验证、国际化、异常处理等。Struts也提供了一些与Spring框架和Hibernate框架的整合方案。

3.2 Struts中的Action是什么?

Action是Struts框架中的Handler类,用于处理HTTP请求。Action类可以返回与面向用户的结果(如JSP页面)或面向程序的结果(如JSON、XML)。

3.3 Struts中的结果集是什么?

结果集是Struts框架中Action方法返回结果的一种形式,可以提供多种表示方式,如展现层(View)和流(Stream)。结果集的类型可以在配置文件中进行定义。

3.4 Struts中的拦截器是什么?

拦截器是Struts框架中的核心组件,用于在Action方法调用前、调用后或异常处理时对请求的处理进行增强。拦截器可以用于身份验证、表单验证等处理。

3.5 Struts中的国际化是怎样实现的?

Struts提供了多种方式来实现Web应用程序的国际化,如MessageResources、ActionMessages等。其中,MessageResources可以将多个本地化的资源文件组织成一个Bundle,提供给程序进行调用,而ActionMessages可以用于保存国际化信息。