几率大的SSM框架面试题(含答案)

其他面试题类型汇总:
Java校招极大几率出的面试题(含答案)----汇总
几率大的网络安全面试题(含答案)
几率大的多线程面试题(含答案)
几率大的源码底层原理,杂食面试题(含答案)
几率大的Redis面试题(含答案)
几率大的linux命令面试题(含答案)
几率大的杂乱+操作系统面试题(含答案)
几率大的SSM框架面试题(含答案)
几率大的数据库(MySQL)面试题(含答案)
几率大的JVM面试题(含答案)
几率大的现场手撕算法面试题(含答案)
临时抱佛脚必备系列(含答案)

注:知识还在积累中,不能保证每个回答都满足各种等级的高手们,若发现有问题的话,本人会尽快完善。
。◕‿◕。


本文的面试题如下:
为什么使用Spring(优缺点)
spring容器创建对象的时机
Spring的常用注解解释
Spring MVC的常用注解解释
Mybatis的常用标签或者注解用过哪些
spring bean 的生命周期【~】
Spring事务(ACID,隔离级别,事务传播机制)
IOC底层实现原理【~】
AOP底层实现原理【~】
AOP详解
Spring MVC 运行流程(好)
什么是控制反转(Inversion of Control)与依赖注入(Dependency Injection)
BeanFactory和ApplicationContext区别
Mybatis中的#{}跟${}有什么区别。
从架构设计的角度,可以将 MyBatis 分为哪几层?每层都有哪些主要模块?
spring 常用的注入方式有哪些?
spring bean 的作用域
说一下 spring 的事务隔离?
@RequestMapping @Autowired 的作用是什么?
说一下 hibernate 的缓存机制?
分页插件的实现原理是什么?MyBatis 逻辑分页和物理分页的区别是什么
说一下 MyBatis 的一级缓存和二级缓存
MyBatists的resultType和resultmap的区别
MyBatists的好处?
MyBatis 与 Hibernate 的区别?
使用 MyBatis 的 mapper 接口调用时有哪些要求
BeanFactory
ApplicationContext
SpringBoot常用注解
谈谈你对SpringBoot的理解
讲一下SpringBoot的四大核心功能


为什么使用Spring(优缺点)

①、方便解耦,简化开发(IOC:通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。)
②、AOP编程的支持(通过Spring提供的AOP功能,方便进行面向切面的编程)
③、声明式事务的支持(可以从单调烦闷的事务管理代码中解脱出来,)
④、方便程序的测试(Spring对Junit4支持,可以通过注解方便的测试Spring程序。)
⑤、方便集成各种优秀框架(Spring不排斥各种优秀的开源框架如Struts,Hibernate)

spring容器创建对象的时机

第一种:默认情况下,启动 spring 容器便创建对象(遇到bean便创建对象)
第二种:在spring的配置文件bean中有一个属性 lazy-init=“default/true/false”
    ①、如果lazy-init为"default/false"在启动spring容器时创建对象(默认情况)
     ②、如果lazy-init为"true",在context.getBean时才要创建对象

Spring的常用注解解释

第一步:在 applicationContext.xml 中引入命名空间 引入的命名空间,简单来说就是用来约束xml文件格式的。
第二步:在 applicationContext.xml 文件中引入注解扫描器<context:component-scan base-package=“com.ys.annotation”></context:component-scan>
@Component(@Repository :dao层 @Service:service层 @Controller:web层 功能一样)
@Component
public class Person {}
等价于
@Component(“p”)
public class Person {}
等价于

@Resource 注解,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Resource 的使用来消除 set ,get方法。
@Autowired功能和注解 @Resource 一样,可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。只不过注解@Resource 是按照名称来进行装配,而@Autowired 则是按照类型来进行装配。(它首先会根据类型去匹配,多个则按名称,空则会抛出异常。法二:@Autowired 和 @Qualifier(“名称”) 配合使用)
@Qualifier:将@Qualifier注解和@Autowire注解结合使用,指定需要装配的确切的bean。
@Required:表明bean的属性必须在配置的时候设置.
@Configuration 声明当前类是一个配置类 @Configuation等价于
@Bean 注解的方法将会实例化、配置和初始化一个新对象,这个对象将由 Spring的 IoC 容器来管理, 作用与 元素类似
不同点:实现原理不同,@Configuration基于CGlib代理实现,@Component基于反射实现;

Spring MVC的常用注解解释

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。
@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数
@RequestMapping(value="/product/{productId}",method = RequestMethod.GET)
public String getProduct(@PathVariable(“productId”) String productId)
@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用;
在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。例如,异步获取 json 数据,加上 @Responsebody 注解后,就会直接返回 json 数据。
@RequestParam 在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter(“name”),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解 。 spring会自动根据参数名字封装进入,我们可以直接拿这个参数名来用

1. @RequestMapping("testRequestParam")    参数同名
2.    public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) {  
             int inputInt = Integer.valueOf(request.getParameter("inputInt"));
前
1. <form action="/gadget/testRequestParam" method="post">    
2.      参数inputStr:<input type="text" name="inputStr">    
3.      参数intputInt:<input type="text" name="inputInt">    
4. </form>  

1、可以对传入参数指定参数名
 @RequestParam(value="aa") String inputStr  

2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传
public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)

Mybatis的常用标签或者注解用过哪些

MyBatis 的强大特性之一便是它的动态 SQL
标签:

<if> 
<choose,when,otherwise> 有点像 Java 中的 switch 语句。
<trim>标签 格式化的标记
<foreach> 对一个集合进行遍历, 通常是在构建 IN 条件语句的时候
<foreach collection="" item="" index=""  open="" separator="" close=""></foreach>
bind标签 <bind  name="" value="" />取别名

@Select 简单查询 @Select(" Select * from sellers “)
@Results @Result 用来配置列名和属性 @Result(id = true, column = “id”, property = “id”),
@Insert 简单插入
@Insert(” insert into tb_user(name,sex,age) values(#{name},#{sex},#{age} " )
int saveUser(User user);
@Update 简单更新
@Delete 简单删除
@Delete("delete from sellers where id =#{id} ")
void deleteById(Integer id);
@Mapper

spring bean 的生命周期

1.Spring 容器根据配置中的 bean 定义中实例化 bean。
2. Spring 使用依赖注入填充所有属性,如 bea

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值