大数据1028第三阶段第二周周测错题整理

试卷总分:100  及格分:60  平均分:70.68  得分:87

1.谈谈对Spring的IoC/DI的理解

我的答案:(满分10分,得分10分)

IoC:控制反转,是一种思想.以前写程序都是由我们自己创建对象,而IoC思想是将创建对象的任务交给IoC容器.当我们需要对象的时候,直接从IoC容器中取就可以了.

DI:依赖注入,其实IoC跟DI算是同一个东西,DI就是为对象的字段注入值.

答案解析:

SpringIoC和DI是同一个概念不同角度的描述.IoC强调对象的创建的权利由Spring完成,DI强调对象的属性由Spring自动的注入值.

个人批注:老师重点讲解的内容,我一般都能记得住,感觉重要的是理解,也不用强行背.

2.SpringMVC中,forward和redirect字符串的作用

我的答案:(满分10分,得分8分)

1.forward就是转发到某个页面

2.redirect就是重定向到某个页面

答案解析:

两个字符串的共同功能是使视图解析器的前缀和后缀不再生效.forward的作用是以请求转发的方式跳转到视图页面,redirect是以重定向的方式跳转到视图页面

老师批注:两个字符串的共同功能是使视图解析器的前缀和后缀不再生效

个人批注:这个题的确是我疏忽,老师上课的时候详细讲过,还举了例子.就是第一反应吧,看到forward和redirect就想到转发和重定向,然后没想太多.要是做题仔细,应该也能写全.

3.@Autowired注解给字段注入值时从容器中获取对象的顺序

我的答案:(满分10分,得分10分)

1.首先,通过对象的类型寻找,如果找到,就使用setter方法为字段注入值.如果没找到就报错.

2.如果找到多个同类型的,就使用@Qualifier注解,确定找的是哪一个.找到就使用setter方法为字段注入值,没找到就报错.

答案解析:

首先按照字段的类型获取,如果没有类型,则会抛出异常.如果有一个匹配的类型就会直接注入;如果有多个匹配的类型,则再寻找名为为字段名的对象.如果能找到则直接注入,如果没有匹配的名字怎抛出异常

个人批注:这个题还可以,凡是老师讲过的重点,我基本上都有认真的理解过.

4.静态代理和动态代理的区别

我的答案:(满分10分,得分10分)

静态代理是在程序编译时期就已经确定了代理类和真实角色的关系.有源文件.

动态代理是在程序运行时期,依靠反射,动态的创建真实角色的代理类,生成字节码文件,运行.是没有源文件的.

答案解析:

静态代理是在程序运行之前就已经存在了代理对象的字节码,目标对象和代理对象的关系是在程序运行之前就已经确定了.

动态代理是在程序运行之前没有代理对象的字节码,字节码是在程序运行期间有JVM动态的生成.代理对象和被代理对象的关系是在程序运行时才确定了的.

个人批注:这块也认真研究过,没什么难度

5.使用SpringMVC框架响应一个JSON对象的开发步骤.(前端控制器,Controller控制器已经配置完成)

我的答案:(满分10分,得分8分)

1.导入jackson依赖

2.在Controller控制器中添加JSON的注解

3.返回一个对象类型(加完注解,直接返回的就是JSON格式)

答案解析:

1.导入jackson的依赖

2.创建返回对象的方法,并标注@RequestMapping,指定方法的访问路径

3.方法上标注@ResponseBody注解.

老师批注:@ResponseBody注解

个人批注:其实我当时写的时候是想写出JSON注解的,然后忘了那个注解叫啥了,妈呀幸好没写,扣了两分,要是写了估计就扣五分了.哈哈哈哈

6.Spring的AOP的理解?

我的答案:(满分10分,得分10分)

Spring的AOP是一种面向切面编程的思想.由于我们写代码的时候,会出现很多重复代码,例如事务控制,日志管理等.每一个模块中都需要,但是这些模块可能毫无关系.无法抽象出一个父类,去避免书写过多重复代码.而AOP解决了这个问题,切面的思想,使得即便各个模块毫无关系,也可以通过配置文件或者注解的方式,为这些模块加上相应的增强,如事务控制,日志管理安全控制等.

答案解析:

AOP,一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。Spring AOP使用的动态代理实现。

 

7.SpringMVC的流程?

我的答案:(满分10分,得分10分)

1.用户发送请求给前端控制器

2.前端控制器调用处理器映射器,处理器映射器找到相应的映射,生成处理器对象,并返回给前端控制器.

3.前端控制器调用处理器适配器,并将处理器对象传过去.处理器适配器找到相应的处理器,进行处理.并返回一个ModelAndView对象给前端控制器.

4.前端控制器调用视图解析器,视图解析器解析ModelAndView,并返回给前端控制器.

5.ModelAndView进行渲染,数据填充

6.前端控制器,将渲染后的页面响应给用户

答案解析:

1.用户发送请求至前端控制器DispatcherServlet;

2.DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取

Handle;

3.处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果

有则生成)一并返回给DispatcherServlet;

4.DispatcherServlet 调用 HandlerAdapter处理器适配器;

5.HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);

6.Handler执行完成返回ModelAndView;

7.HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;

8.DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;

9.ViewResolver解析后返回具体View;

10.DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)

11.DispatcherServlet响应用户。

8.有哪些不同类型的IoC(依赖注入)方式?

我的答案:(满分10分,得分4分)

1.属性注入

2.集合注入

3.对象注入

答案解析:

1.构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。

2.Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参static工厂 方

法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。

个人批注:我是个憨憨,我理解错题意了,emmm反正就是方向错了,然后这个错了,那个也错了

9.SpringMVC怎么和前端AJAX交互的?

我的答案:(满分10分,得分7分)

1.AJAX发送请求到前端控制器,

2.前端控制器通过处理器映射器找到相应的处理器,

3.然后调用处理器适配器,处理器适配器找到相应的处理器

4.接收传过来的参数,并对其进行处理,将结果转为JSON对象返回给前端控制器

5.前端控制器将数据响应给AJAX

6.AJAX完成数据的局部刷新

答案解析:

通过 jackson 框架就可以把 java 里面的对象直接转化成 js 可以识别的 json 对象具体步骤如下 :

1.加入jackson相关依赖

2.在接受 Ajax 方法里面可以直接返回 Object,List 等,但方法前面要加上@ResponseBody注解

个人批注:我感觉我大致理解这个东西,就是写的时候,有点儿emmm乱七八糟

10.写出Spring常用注解5个

我的答案:(满分10分,得分10分)

1.@Component

2.@Repository

3.@Controller

4.@Service

5.@Autowired

答案解析:

@Service、@Repository、@Controller、 @Autowired、@Resource任意五个即可

个人批注:太棒了,我常用的刚好五个哈哈哈哈哈

本次考试总结:

我爱学习,学习爱我,耶!

发布了100 篇原创文章 · 获赞 7 · 访问量 7570

猜你喜欢

转载自blog.csdn.net/qq_40245464/article/details/103745132