【JavaEE】验收答辩知识点
1、SpringMVC是什么?如何进行协作?
springMVC,是spring的一个子框架,当然拥有spring的特性,如依赖注入。
概念:
M:Model,模型。JavaBean
* 完成具体的业务操作,如:查询数据库,封装对象
V:View,视图。JSP
* 展示数据
C:Controller,控制器。Servlet
* 获取用户的输入
* 调用模型
* 将数据交给视图进行展示
工作流程:
2、各注解含义?
- @Component 表示一个组件对象(Bean)
- @Repository 将数据访问层(Dao),标识为Bean,功能和@Component相同
- @Service 标注一个业务逻辑组件类(Service层),功能和@Component相同
- @Controller 标注一个控制器组件类(SpringMVC的Controller),功能和@Component相同
- @Autowrited 对类成员变量、构造方法、方法进行标注,完成自动装配的工作;默认按照Bean类型进行装配
- @Configuration 用于定义配置类,可替换xml配置文件
- @Data 提供类的get、set、equals、hashCode、canEqual、toString方法;需要导入lombok依赖;
- @RestController @RestController注解相当于@ResponseBody + @Controller合在一起的作用;返回Json格式;
- @RequestMapping 映射请求,也就是通过它来指定控制器可以处理哪些URL请求;
- @GetMapping 用于处理请求方法的GET类型;
- @PostMapping 用于处理请求方法的POST类型等;
- @ResponseBody 将java对象转为json格式的数据;
- @Resource 默认按byName自动注入;
- @Mapper 一个描述数据层接口的注解,;
- @Alias 定义别名;
- @MapperScan 指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类;
- @SpringBootApplication 开启自动配置;
3、spring、springboot区别?
- Spring框架为开发Java应用程序提供了全面的基础架构支持。它包含一些很好的功能,如依赖注入和开箱即用的模块
- Spring Boot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的XML配置,为更快,更高效的开发生态系统铺平了道路。
4、拦截器含义?
SpringMVC的拦截器和Java Servelet的过滤器类似,主要用于拦截用户的请求并做相应处理,通常应用在 权限验证、记录请求信息的日志、判断用户是否登录等功能上。
本次项目实现是通过: 继承并实现 HandlerInterceptor 接口完成。
5、aop含义?
aop即面向切面编程;
保证开发者不修改源代码的前提下,去为系统中的业务组件添加某种通用功能。AOP 的本质是由 AOP 框架修改业务组件的多个方法的源代码,看到这其实应该明白了,AOP 其实就是前面一篇文章讲的代理模式的典型应用。
按照 AOP 框架修改源代码的时机,可以将其分为两类:
- 静态 AOP 实现, AOP 框架在编译阶段对程序源代码进行修改,生成了静态的 AOP 代理类(生成的 *.class 文件已经被改掉了,需要使用特定的编译器),比如 AspectJ。
- 动态 AOP 实现, AOP 框架在运行阶段对动态生成代理对象(在内存中以 JDK 动态代理,或 CGlib 动态地生成 AOP 代理类),如 SpringAOP。
6、服务层自动注入是什么?
三种方式:
1. @Autowired注解——由spring提供
7、bean是什么?怎么用?
什么是Bean?
Spring Bean是被实例的,组装的及被Spring 容器管理的Java对象。
Spring 容器会自动完成@bean对象的实例化。
创建应用对象之间的协作关系的行为称为:装配(wiring),这就是依赖注入的本质。
使用方法
本次项目中,使用组件的方式进行装配,例如:@Component、@Repository、@Service、@Controller、@Autowrited等
8、事务管理是什么?
事务是一个不可分割操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。
事务具有ACID四个特性:
- 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生
- 一致性(Consistency):事务在完成后数据的完整性必须保持一致
- 隔离性(Isolation):多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间的数据要相互隔离
- 持久性(Durability):一个事务一旦被提交,它对数据库中数据的改变应该是永久性的,即使数据库发生故障也不应该对其有任何影响
9、get、post方法?
GET把参数包含在URL中,POST通过request body传递参数。
- 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
- 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。
10、重定向和直接跳转区别?
- 重定向:将用户从当前处理请求,定向到另一个视图或处理请求;以前请求存储的信息全部失效;客户端行为;URL会改变;
- 转发:将用户从当前处理请求,转发到另一个视图或处理请求;以前请求存储的信息不会失效;服务器行为;URL不会改变;
11、IOC和DI?
IOC:控制反转
DI:依赖注入
创建合作对象B的工作是由Spring来做的,Spring创建好B对象,然后存储到一个容器里面,当A对象需要使用B对象时,Spring就从存放对象的那个容器里面取出A要使用的那个B对象,然后交给A对象使用,至于Spring是如何创建那个对象,以及什么时候创建好对象的,A对象不需要关心这些细节问题,A得到Spring给我们的对象之后,两个人一起协作完成要完成的工作即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构