ssm理论

学习资源推荐 https://blog.csdn.net/qq_42813491/article/details/90213353

1简述SSM系统架构

  • SSM框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。

  • spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,尤其是注解开发和控制反转,极大的简化了开发

  • SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

  • MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架,只需要关注sql语句,底层细节不用过多考虑,api调用十分方便

2 什么是 Spring IOC 容器


对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,比如以前调用某个实现类的方法需要手动new一下,现在不需要,可以将创建对象的控制权交给spring,所以这叫控制反转。


3 解释什么是依赖注入

依赖注入(DI)核心是依赖,没有IoC无从谈起。简单来说,依赖注入就是在系统运行中,动态的向某个对象提供它所需要的其他对象。从mvc模式开发来看,service需要调用dao层的方法,那就需要将其对应接口的实现类作为一个属性注入到service层,控制层也是如此,需要注入service层对应接口的实现类作为自身属性,简化开发

4 描述可以通过多少种方式完成依赖注入?分别是什么

  • 共4种,常用2种 set 注解

  • 方法1:构造器,需要对象提供有参数的构造方法(注入时可以没有set方法)
    通过constructer-arg标签中的name(index) ,value,ref属性进行匹配
    如果注入的是普通属性,用value,对象类型用ref

  • 方法2:Set方法 注入时提供set方法,用 property标签里边name,value,ref属性进行匹配,如果注入的是普通属性,用value,对象类型用ref

  • 方法3:注解 开启annotation开发模式,方便点可以用包扫描,不需要set方法
    @Component:注解描述bean,实际上这个注解与Repository,Service,Controller功能一样,为了体现分层,被衍生的三个注解取代

    @Repository:注解描述Dao 数据访问层
    @Service:注解描述Service业务层
    @Controller:注解描述Contorller 控制层
    @Autowired:注解Bean中属性变量自动配置工作
    @Qualifier:注解跟@ Autowired配合使用,修改实例名称装配
    @Resource:注解类似于@Autowired,单独使用,@Resource(name="")

  • 方法4:P 命名空间 普通属性 p:属性名=”值”
    对象属性 p:属性名-ref=”值”

5 简述什么是Spring MVC ?简单介绍下你对springMVC的理解

Spring MVC是一个优秀的mvc框架,国内有大量用户,一般新项目启动都会选用springmvc,框架入口基于基于servlet,框架设计思想是控制器基于方法级别的拦截,处理器设计为单实例。通过方法入参传递,属于spring框架的一部分,无需整合即可使用,自身对视图模型,控制调度可控性很高,十分灵活,屏蔽了很多底层细节

6 简述SpringMVC的流程

  • 一,客户端浏览器发出请求并被前端控制器拦截(hello.action)
  • 二,与web.xml配置文件中的映射文件匹配,找到对应的处理器即servlet_className
  • 三,初始化参数并加载springmvc配置文件
  • 四,解析配置文件中的数据,比如注解扫描,注解驱动,视图解析器
  • 五,通过注解扫描找到对应的controller
  • 六,进入controller,找到resultMapping里边的匹配方法,执行完返回视图解析器处理完的视图对象
  • 七,返回客户端

7 描述Spring MVC的主要组件及作用

前端控制器

1、文件上传解析
2、通过 HandlerMapping,将请求映射到处理器
3、 通过处理器适配器 支持多种类型的处理器;
4、通过 ViewResolver 解析逻辑视图名到具体视图实现
5、本地化解析;
6、渲染具体的视图等;

处理器适配器:适配映射过来的请求

处理器映射器:映射请求

视图解析器,解析视图,返回视图对象

8 说明SpringMVC怎么样设定重定向和转发的

方法一:

action返回值为String, return “redirect:xxx.jsp”;(重定向)
action返回值为String, return “forword:xxx.jsp”;(转发)

方法二:

action返回值为void,
传入默认支持的参数HttpServletRequest req,HttpServletResponse res

req.getRequestDispatcher(“xxx.jsp”).forword(req,res) (转发)

res.sendRedirect(“xxx.jsp”);(重定向)

9 解释springmvc中注解@RequestMapping的作用

作用一:加在类上,作为一个文件夹的功能,方便管理,访问action要加目录,如A/a.action
作用二:加在action上,作为常用的映射使用,匹配客户端浏览器的请求
作用三:指定请求方式,post或者get,默认都支持

10 说明SpringMvc中函数的返回值有那几种,分别如何传参数到下一页面

string return “”

void 转发重定向,同servlet一样

ModelAndView 存储数据,设置视图名,返回ModelAndView 对象 return mav

11 简述:使用MyBatis的mapper接口调用时有哪些要求

1.namespace必需是接口的全路径名
2.接口的方法名必需与映射文件的sql id一致
3.接口的输入参数必需与映射文件的parameterType类型一致
4.接口的返回类型必须与映射文件的resultType类型一致

12 描述:mybaits中#{}和${}的区别是什么?

#{},相当于占位符?,${}是字符串拼接,最能体现差别的是模糊查询

SELECT * FROM USER WHERE username LIKE #{name} ,这种方式用户传递参数为("%name%")

SELECT * FROM USER WHERE username LIKE ‘%${value}%’,这种方式用户传递参数为(“name”)

如果参入的是普通类型,${}里边必须是value

13 简述:Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

可以,命名空间不一样即可

实例(逆向工程),StudentMapper ,CourseMapper根据id查询都是这个方法,就是传入参数的细微差别 selectByPrimaryKey,比如studentID courseID

14 简述MyBatis实现一对多有几种方式,怎么操作的?

两种

方法一:简单粗暴,用resultmap关联查询

方法二:查询两次,以用户表和订单表为例,先根据用户表找到用户id,然后根据用户id找到该用户下的所有订单(不推荐,与数据库交互两次,效率低)

15 简述:MyBatis编程步骤是什么样的?

配置SqlMapconfig.xml文件,完成数据源的配置
配置映射文件,书写sql语句
在SqlMapconfig.xml中加载映射文件
编码测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值