java由于其内容的丰富性以及知识群的庞大性,受到了很多年轻人的欢迎,并且努力学习。今天就来为大家介绍一些常见的面试题,也就是java中SSM框架面试题,spring的使用,一起来了解一下吧。
首先说一下为什么使用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 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会自动根据参数名字封装进入,我们可以直接拿这个参数名来用。代码展示如下:
@RequestMapping("testRequestParam") 参数同名 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"> 参数intputInt:<input type="text" name="inputInt"> </form> 可以对传入参数指定参数名 @RequestParam(value="aa") String inputStr 可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传 public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)
以上就是关于java中SSM框架面试题,spring的使用的主要内容了。如果你对java知识感兴趣,想要了解更多java面试题,敬请关注奇Q工具网。
推荐阅读: