Java开发框架和中间件面试题(2)

发布时间:2023年12月20日

8.说说自己对Spring MVC的了解?

? MVC是一种设计模式,Spring MVC是一款很优秀的MVC框架。Spring MVC可以帮助我们进行更简洁的Web层开发,并且它天生与Spring框架集成。SpringMVC下我们一般把后端项目分为Service(处理业务),DAO层(数据库操作),Entity层(实体类),Controller层(控制层,返回数据给前台页面)。

Spring MVC的简单原理图如下:

9.SpringMVC的工作原理了解嘛?

流程说明:

1.客户端(浏览器)发送请求,直接请求到DispatcherServlet。

2.DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler。

3.解析到对应的Handler(也就是我们平常说的controller)

4.HandlerAdapter会根据Handler来调用真正的处理器来处理请求和执行相对应的业务逻辑。

5.处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是逻辑上的View。

6.ViewResolver会根据逻辑View去查找实际的View。

7.DispatcherServlet把返回的Model传给View(视图渲染)。

8.把View返回给请求者(浏览器)。

10.spring框架中用到了哪些设计模式?

? ? 1.工厂设计模式:Spring使用工厂模式通过Bean Factory和ApplicationContext创建Bean对象。

? ? 2.代理设计模式:SpringAOP功能的实现。

? ? 3.单例设计模式:Spring中的bean默认都是单例的。

? ? 4.模版方法模式:Spring中的jdbcTemplate,hibernateTemplate等以Template结尾的对数据库操作的类,他们就使用到了模版模式。

? ?5.包装器设计模式:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。

? ?6.观察者模式:Spring事件驱动模型就是观察者模式很经典的一个应用。

? ?7.适配器模式:SpringAOP的增强或者通知(Advice)使用到了适配器模式,SpringMvc也是 用到了适配器模式适配controller。

11.@Component和@Bean的区别是什么?

? ?11.1.作用对象不同。@component注解作用于类,而@Bean注解作用于方法。

? ?11.2.@Component注解通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中(我们可以使用@ComponentScan注解定义要扫描的路径)。@Bean注解通常是在标有该注解的方法中定义产生这个Bean,告诉Spring这是某个类的实例,当我需要用它的时候还给我。

? 11.3.@Bean注解比@Component注解的自定义性更强,而且很多地方只能通过@Bean注解来注册Bean。比如当引用第三方库的类需要装配到Spring容器的时候,就只能通过@Bean注解来实现。

12.将一个类声明为Spring的Bean的注解有哪些?

? ? 我们一般使用@Autowire注解去自动装配Bean。而想要把一个类标识为可以用@Autowired注解自动装配的Bean,可以采用以下的注解实现:

? ? 1??@Component注解。通用的注解,可标注任意类为Spring组件,如果一个Bean不知道属于哪一个层,可以使用@Component注解标注。

? ?2??@Repository注解。对应持久层,即DAO层,主要用于数据库相关操作。

? ?3??@Service注解。对应服务层,即Service层,主要涉及一些复杂的逻辑,需要用到DAO层注入。

? 4??@Controller注解。对应Spring MVC的控制层,即Controller层,主要用于接受用户请求并调用Service层方法返回数据给前端页面。

13.Spring事务管理的方式有几种?

? ?1??编程式事务:在代码中硬编码(不推荐使用)。

? ?2??声明式事务:在配置文件中配置(推荐使用),分为基于XML的声明式事务和基于注解的声明式事务。

文章来源:https://blog.csdn.net/qq_30624649/article/details/135114794
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。