news 2026/2/10 6:17:54

Java面试题(SSM篇)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java面试题(SSM篇)
1.41 Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?
  • SimpleExecutor:默认,每次执行 SQL 创建新的Statement。
  • ReuseExecutor:复用Statement(根据 SQL 缓存)。
  • BatchExecutor:批量执行 SQL(仅适用于INSERT/UPDATE/DELETE)。
1.42 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
  • 半自动:MyBatis 需手动编写 SQL,仅自动完成结果集映射;全自动 ORM(如 Hibernate)无需编写 SQL,通过对象关系映射自动生成 SQL。
  • 区别:MyBatis 更灵活(SQL 可控),Hibernate 更简化开发(但复杂查询效率低)。
1.43 简单介绍下你对 mybatis 的理解?
  • 轻量级 ORM 框架,连接 Java 与数据库,简化 JDBC 操作。
  • 核心是 SQL 映射,支持动态 SQL、缓存、接口绑定等功能。
  • 平衡了 SQL 灵活性和开发效率,适合对 SQL 有精细控制的场景。
1.44 介绍一下 Spring 的事物管理?
  • 支持编程式和声明式事务,核心是PlatformTransactionManager(事务管理器)。
  • 声明式事务通过@Transactional注解指定传播行为(如REQUIRED)、隔离级别、超时时间等。
  • 基于 AOP 实现,无侵入性,简化事务控制。
1.45 SSM 优缺点、使用场景?
  • 优点:
    • Spring:IOC/DI 降低耦合,AOP 分离关注点。
    • SpringMVC:分层清晰,支持 RESTful,易扩展。
    • MyBatis:SQL 灵活,适合复杂查询。
  • 缺点:
    • 配置较繁琐(可通过注解简化)。
    • MyBatis 需手动写 SQL,数据库移植性差。
  • 使用场景:中小型企业级应用、需要灵活控制 SQL 的系统。
1.48 怎么样把数据放入 Session 里面?
  • 在 Controller 中通过HttpSession参数直接设置:session.setAttribute("key", value)。
  • 通过ModelAndView的addObject结合@SessionAttributes注解,将模型数据存入 session。
1.50 MyBatis (IBatis) 的好处是什么?
  • 简化 JDBC 代码,减少冗余。
  • SQL 与 Java 代码分离,便于维护。
  • 支持动态 SQL 和缓存,提高效率。
  • 灵活,适合复杂查询场景。
1.53 什么是 bean 的自动装配?
  • Spring 容器根据规则自动为 Bean 注入依赖,无需手动配置ref属性。
  • 模式:byName(按属性名匹配 Bean ID)、byType(按属性类型匹配)、constructor(构造器参数类型匹配)、autodetect(自动检测)。
1.54 什么是基于 Java 的 Spring 注解配置?给一些注解的例子?
  • 通过 Java 类和注解替代 XML 配置 Bean。
  • 例子:@Configuration(配置类)、@Bean(定义 Bean)、@ComponentScan(扫描组件)、@Autowired(自动注入)、@Service(服务层组件)等。
1.55 使用 Spring 通过什么方式访问 Hibernate?
  • 集成HibernateTemplate(模板类简化操作)。
  • 通过SessionFactory获取Session手动操作。
  • 声明式事务管理(结合@Transactional)。
1.56 如何通过 HibernateDaoSupport 将 Spring 和 Hibernate 结合起来?
  • 让 DAO 类继承HibernateDaoSupport,通过setSessionFactory注入SessionFactory。
  • 利用父类的getHibernateTemplate()获取模板类,简化 CRUD 操作。
1.58 在 Spring AOP 中,连接点和切入点的区别是什么?
  • 连接点(Joinpoint):程序执行过程中可被拦截的点(如方法调用、字段访问)。
  • 切入点(Pointcut):从连接点中筛选出的需要被增强的点(通过表达式指定,如execution(* com..*Service.*(..)))。
1.59 AOP 作用是什么,底层如何实现在哪些地方会用到,分别简述切面,切入点和通知?
  • 作用:分离横切关注点(如日志、事务),降低代码耦合。
  • 底层实现:JDK 动态代理(接口)和 CGLIB 代理(类)。
  • 应用场景:日志记录、事务控制、权限校验。
  • 概念:
    • 切面(Aspect):横切关注点的模块化(类 + 通知 + 切入点)。
    • 切入点(Pointcut):定义拦截哪些连接点。
    • 通知(Advice):拦截后的操作(@Before、@After、@Around等)。
1.60 Spring 中 AutoWired 和 Resource 之间区别是什么?
  • @Autowired:Spring 提供,默认按类型(byType)注入,可配合@Qualifier按名称注入,支持required=false(非必须)。
  • @Resource:JDK 提供,默认按名称(byName)注入,名称匹配失败则按类型,不支持required属性。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 9:54:14

Open-AutoGLM vs BrowserStack:3个关键场景实测,谁才是兼容性王者?

第一章:Open-AutoGLM vs BrowserStack:兼容性测试的背景与意义在现代Web应用开发中,确保应用程序在不同设备、操作系统和浏览器环境中的稳定运行至关重要。兼容性测试作为质量保障的关键环节,直接影响用户体验与产品可靠性。随着前…

作者头像 李华
网站建设 2026/2/7 20:19:54

【前端自动化测试新纪元】:Open-AutoGLM能否取代BrowserStack?真相在这里

第一章:前端自动化测试新纪元的来临随着现代前端工程的复杂化,传统的手动测试方式已难以满足快速迭代和高质量交付的需求。前端自动化测试正逐步成为开发流程中不可或缺的一环,推动着软件质量保障体系进入全新阶段。测试框架的演进与选择 近年…

作者头像 李华
网站建设 2026/2/7 14:27:46

Open-AutoGLM与Sauce Labs集成实战(差异对比与避坑指南)

第一章:Open-AutoGLM与Sauce Labs集成概述 Open-AutoGLM 是一个开源的自动化语言模型驱动测试框架,专为智能测试用例生成与执行而设计。通过与 Sauce Labs 云测试平台深度集成,开发者能够在跨浏览器和跨设备环境中实现高效的端到端自动化测试…

作者头像 李华
网站建设 2026/2/4 13:57:37

学术探索新利器:书匠策AI——本科硕士论文写作的智能导航仪

在学术的浩瀚海洋中,每一位本科生和硕士生都是勇敢的航海家,怀揣着对知识的渴望和对真理的追求,不断探索未知的领域。然而,面对堆积如山的文献资料、错综复杂的逻辑框架以及繁琐的格式调整,不少学子常常感到力不从心。…

作者头像 李华
网站建设 2026/2/4 9:00:55

从“DDL地狱”到结构化学术叙事:论文写作如何从苦役变为思维之旅

图书馆的灯光映照着屏幕上横七竖八的窗口——文献PDF、草稿文档、混乱的参考文献列表,这些碎片化的工具切换正在吞噬学者们近30%的宝贵时间。深夜的自习室弥漫着咖啡、焦虑和文献的混合气味,图书馆靠窗的位置早已被占满。这是无数本科生和硕士生面对论文…

作者头像 李华
网站建设 2026/2/6 19:32:33

别再用UiPath了?Open-AutoGLM以极简操作重塑自动化开发体验

第一章:自动化开发新范式的崛起软件开发正经历一场由自动化驱动的深刻变革。传统的手动编码、测试与部署流程正在被高度集成的自动化体系所取代。这一转变不仅提升了交付效率,更从根本上改变了开发者的工作模式与技术栈选择逻辑。自动化开发的核心特征 代…

作者头像 李华