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的声明式事务和基于注解的声明式事务。