考试的选择填空判断简答,来自老师发的复习资料,大题什么的还是得交给大佬来出,我就不弄了。每种题各50道
目录
选择题
判断题
填空题
简答题
-
选择题
- MyBatis的删除操作有关说发错误的是。( D )
A: MyBatis的删除操作在映射文件中是通过配置<delete>元素来实现的。
B: MyBatis的删除操作也需要进行事务提交。
C: MyBatis的删除操作执行了SqlSession的delete()方法。
D: MyBatis的删除操作和添加操作一样,也需要封装整个实体类。
- MyBatis的更新操作有关说发错误的是。( D )
A: MyBatis的更新操作在映射文件中是通过配置<update>元素来实现的 。
B: MyBatis的更新操作也需要进行事务提交。
C: MyBatis的更新操作执行了SqlSession的update()方法 。
D: MyBatis的更新操作和添加操作时,只需要将insert()方法改为updat()方法即可。
- 关于MyBatis模糊查询中进行SQL字符串拼接时,说法错误的是。( C )
A: 使用“${}”进行SQL字符串拼接时,无法防止SQL注入问题。
B: 可以使用MySQL中的concat()函数进行字符串拼接。
C: 使用MySQL中的concat()函数进行字符串拼接,也无法防止SQL注入。
D: 使用MySQL中的concat()函数进行字符串拼接,导致数据库移植性变差。
- 有关MyBatis工作原理说法错误的是。( C )
A: MyBatis的全局配置文件配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接
B: MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件中加载才能执行
C: 可以通过MyBatis的环境等配置信息构建会话对象SqlSession
D: SqlSession对象,该对象中包含了执行SQL的所有方法
- 使用ORM框架后,应用程序不再直接访问底层数据库,而是以()的方式来操作持久化对象(PO,即Persisent Object)。( C)
A: 面向业务B: Hibernate C: 面向对象 D: MyBatis
- 以下有关<sql>元素说法错误的是。( C )
A: <sql>元素的作用就是定义可重用的SQL代码片段,然后在其他语句中引用这一代码片段。
B: 使用<include>元素的refid属性可以引用自定义的代码片段。
C: 使用<include>元素refid的属性值为自定义代码片段的name。
D: <sql>元素是<mapper>元素的子元素。
- 以下有关MyBatis映射文件中<insert>元素说法正确的是。( C )
A: <insert>元素用于映射插入语句,在执行完元素中定义的SQL语句后,没有返回结果。
B: <insert>元素的属性与<select>元素的属性相同。
C: keyColumn属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置。
D: useGeneratedKeys(仅对insert有用)此属性会使MyBatis使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键。
- 以下关于<select>元素及其属性说法错误的是。( C )
A: <select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员。
B: parameterType属性表示传入SQL语句的参数类的全限定名或者别名。
C: resultMap表示外部resultMap的命名引用,返回时可以同时使用resultType和resultMap
D: 在同一个映射文件中可以配置多个<select>元素。
- 关于<typeHandlers>元素说法错误的是。( D )
A: <typeHandler>元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种。
B: 通过<typeHandlers>元素的子元素<typeHandler>就可以配置单个类型处理器。
C: 通过<typeHandlers>元素的子元素<package>可以配置包下的所有类型处理器。
D: <typeHandlers>元素的子元素<package>的handler属性用于指定类型处理器所在的包名,系统会在启动时自动的扫描com.itheima.type包下所有的文件,并把它们作为类型处理器。
- 有关MyBatis配置文件中<settings>元素的说法错误的是。(C )
A: <settings>元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等。
B: 虽然不配置<settings>元素,也可以正常运行MyBatis,但是熟悉<settings>的配置内容以及它们的作用还是十分必要的。
C: <settings>元素中延迟加载的全局开关的参数lazyLoadingEnabled默认开启。
D: <settings>元素的配置内容大多数都不需要开发人员去配置它,通常在需要时只配置少数几项即可。
- 以下不属于<foreach>元素中使用的属性的是。( C )
A: separator
B: collection
C: current
D: item
- 以下关于<foreach>元素中使用的几种属性的描述错误的是。( C )
A: item:配置的是循环中当前的元素。
B: index:配置的是当前元素在集合的位置下标。
C: collection:配置的是传递过来的参数类型,它可以是一个array、list(或collection)、Map集合的键、POJO包装类中数组或集合类型的属性名等。
D: separator:配置的是各个元素的间隔符。
- 以下关于MyBatis的<set>元素的使用及说法正确的是。( A )
A: <set>元素主要用于更新操作,其主要作用是在动态包含的SQL语句前输出一个SET关键字,并将SQL语句中最后一个多余的逗号去除。
B: 使用MyBatis的<set>元素来更新操作时,前端需要传入所有参数字段,否则未传入字段会默认设置为空。
C: 在映射文件中使用<set>和<if>元素组合进行update语句动态SQL组装时, <set>元素内包含的内容可以都为空,<if>元素会进行判断处理。
D: 在映射文件进行更新操作时,只需要使用<set>元素就可以进行动态SQL组装。
- 以下有关MyBatis动态SQL中的主要元素说法错误的是。( D )
A: <if>用于单条件分支判断。
B: <choose>(<when>、<otherwise>)用于多条件分支判断。
C: <foreach>循环语句,常用于in语句等列举条件中。
D: <bind>从OGNL表达式中创建一个变量,并将其绑定到上下文,只于模糊查询的sql中。
- 当有多个选择的情况是,值需要从多个选项中选择一个去执行时,可以使用的动态SQL元素是。( B )
A: <if>
B: <choose>、<when>、<otherwise>
C: <when>
D: <set>
- 以下关于Spring核心容器相关说法错误的是。( A )
A: Spring框架的所有功能都是通过其核心容器来实现的。
B: 创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理。
C: ApplicationContext不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。
D: 通常在Java项目中,会采用通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器的方式,而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。
- 以下有关Spring的四个基础包说法正确的是。( D )
A: Spring的四个基础包,它们分别对应Spring Web容器的四个模块。
B: Spring的四个基础包有spring-core.RELEASE.jar、spring-beans-.RELEASE.jar、spring-context-.RELEASE.jar和spring-aop-.RELEASE.jar。
C: spring-context-.RELEASE.jar是所有应用都要用到的JAR包,它包含访问配置文件以及进行IoC或者DI操作相关的所有类。
D: spring-core.RELEASE.jar包含Spring框架基本的核心工具类,Spring其它组件都要用到这个包里的类,是其它组件的基本核心。
- 以下有关Spring框架优点的说法正确的java基础选择填空是。( B )
A: Spring具有简单、可测试和松耦合等特点,从这个角度出发,Spring就是应用于任何Java应用的开发中;
B: Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性
C: Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,杜绝了组件之间的耦合性
D: Spring增加了Java EE开发中一些API的使用难度
- Spring的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块。( D )
A: Beans模块
B: Core模块
C: Context模块
D: AOP模块
- 下列选项中,不属于Spring框架优点的是。( A )
A: 提供强大的、可以有效减少页面代码的标签
B: 声明式事务的支持。
C: 方便解耦、简化开发
D: 方便集成各种优秀框架
- Spring的<bean>元素中的autowire属性取值不包括以下。( D )
A: default B: byName C: byType D: byId
- 以下有关Bean的装配方式说法正确的是。( C )
A: Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配);
B: Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入;
C: 在Spring实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用setter方法来注入属性值;
D: 设值注入要求一个Bean必须提供一个有参构造方法并且为需要注入的属性提供对应的setter方法。
- 以下哪些不属于Spring 4.3版本中Bean的作用域。( C )
A: application B: request C: response D: globalSession
- Spring中定义了一系列的注解,以下有关其常用的注解说明错误的是。( A )
A: @Autowired用于对Bean的属性变量、属性的setter方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动配置工作,默认按照Bean的名称进行装配。
B: @Repository用于将数据访问层(DAO层)的类标识为Spring中的Bean。
C: @Service通常作用在业务层(Service层),用于将业务层的类标识为Spring中的Bean。
D: @Controller通常作用在控制层(如Spring MVC的Controller),用于将控制层的类标识为Spring中的Bean。
- 下列选项中,不属于Spring中实例化Bean的方式的是。( D )
A: 构造器实例化 B: 静态工厂方式实例化
C: 实例工厂方式实例化 D: 抽象方法实例化
- 以下不属于ProxyFactoryBean类中的常用可配置属性的是。(C )
A: target
B: proxyInterfaces
C: targetClass
D: interceptorNames
- 以下哪种类型不是Spring中的通知类型。(D )
A: 异常通知
B: 前置通知
C: 后置通知
D: 最终通知
- 关于AspectJ注解的介绍,说法错误的是。(D )
A: @Aspect用于定义一个切面
B: @Pointcut用于定义切入点表达式
C: @Before用于定义前置通知,相当于BeforeAdvice
D: @After用于定义后置通知,相当于AfterReturningAdvice
- 以下有关CGLIB代理相关说法正确的是。( C )
A: CGLIB代理的使用非常简单,但它还有一定的局限性——使用动态代理的对象必须实现一个或多个接口。
B: 如果要对没有实现接口的类进行代理,那么可以使用CGLIB代理。
C: CGLIB是一个高性能开源的代码生成包,在使用时需要另外导入CGLIB所需要的包。
D: Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理。
- 以下关于Spring AOP 的介绍错误的是。(C )
A: AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。
B: AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取机制的方式,采用OOP思想是无法办到的。
C: 虽然AOP是一种新的编程思想,采取横向抽取机制,是OOP的升级替代品。
D: 目前流行的AOP框架有两个,分别为Spring AOP和AspectJ。
- 下面关于Spring MVC特点说法错误的是。( A )
A: 灵活性强,但不易于与其他框架集成
B: 可自动绑定用户输入,并能正确的转换数据类型
C: 支持国际化
D: 使用基于XML的配置文件,在编辑后,不需要重新编译应用程序
- Spring MVC中的后端控制器是指。( D )
A: HandlerAdapter
B: DispatcherServlet
C: ViewReslover
D: Handler
- 用户通过浏览器向服务器发送请求时,负责拦截用户请求的是。( D )
A: 处理器
B: 处理器映射器
C: 处理器适配器
D: 前端控制器
- 入门程序中,不是必须引入的JAR包是。( D )
A: Spring的4个核心JAR包
B: commons-logging的JAR包
C: spring-web和spring-webmvc的JAR包
D: log4j的JAR
- Spring MVC是Spring提供的一个实现了( A )设计模式的轻量级Web框架。
A: Web MVC
B: Web
C: 单例
D: 工厂
- 下面关于请求处理方法返回类型说法错误的是。( D )
A: 常见的返回类型是ModelAndView、String和void
B: ModelAndView类型中可以添加Model数据,并指定视图
C: String类型的返回值可以跳转视图,但不能携带数据
D: void类型主要在异步请求时使用,它既返回数据,又跳转视图
- 下面类型中,不属于请求处理方法参数类型的是。( D )
A: javax.servlet.http.HttpSession
B: @MatrixVariable
C: org.springframework.ui.Model
D: void
- 下面关于组合注解的说法正确的是。( B )
A: 组合注解是Spring3.x版本中的新特性
B: 组合注解可以简化常用的HTTP方法的映射
C: 在所有的Spring项目中,使用组合注解可以替代@RequestMapping注解
D: @GetMapping注解可以用来匹配GET和POST方式的请求
- 下面关于@RequestMapping注解说法错误的是。( D )
A: @RequestMapping注解的默认属性是value
B: @RequestMapping注解的value属性值可以省略
C: @RequestMapping注解的value属性名可以省略
D: @RequestMapping注解的value属性必须标注
- 下面关于<load-on-startup>元素说法错误的是。( C )
A: 如果<load-on-startup>元素的值为1,则在应用程序启动时会立即加载该Servlet
B: 如果<load-on-startup>元素不存在,则应用程序会在第一个Servlet请求时加载该Servlet
C: 如果<load-on-startup>元素的值为1,则在应用程序启动时会延迟加载该Servlet
D: <load-on-startup>元素是可选的
1.以下有关Spring MVC数据绑定中集合数据绑定的说法正确的是。(D )
A:批量删除用户操作时,前端请求传递过来的参数就会包含多个相同类型的数据,此时可以采用数组类型数据绑定的形式
B:使用集合数据绑定需要后台方法中定义一个集合类型参数介绍绑定前端请求参数
C:绑定数组与绑定集合页面传递的参数相同,只是后台接收方法的参数不同
D:在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定
2.下面选项中,哪一个是Spring的编码过滤器类。( B )
A: org.springframework.web.filter.EncodingFilter
B: org.springframework.web.filter.CharacterEncodingFilter
C: org.springframework.web.filter.CharacterEncoding
D: org.springframework.web.filter.CharacterFilter
3.@RequestParam注解中可以省略属性名称的是。(B )
A: defaultValue
B: value
C: name
D: required
4.下面关于包装POJO类型数据绑定的说法正确的是。( A )
A: 如果查询条件参数是包装类的直接基本属性,则参数名直接用对应的属性名
B: 如果查询条件参数是包装类的直接基本属性,则参数名必须使用对应的“对象.属性名”
C: 如果查询条件参数是包装类中POJO的子属性,则参数名必须为属性名
D: 如果查询条件参数是包装类中POJO的子属性,则参数名必须为“对象.子属性.属性值”的形式
5.下面不属于@RequestParam注解类型属性的是。(A )
A: id
B: value
C: name
D: required
1.下列选项中,不需要配置在web.xml中的是。( C )
A: Spring的监听器
B: 编码过滤器
C: 视图解析器
D: 前端控制器
2.下列选项中,属于Spring MVC所必须的JAR包的是。( A )
A: spring-web-4.3.6.RELEASE.jar
B: spring-webmvc-portlet-4.3.6.RELEASE.jar
C: spring-webmvc-4.3.6.RELEASE-javadoc.jar
D: spring-websocket-4.3.6.RELEASE.jar
3.下列选项中,不属于SSM整合时所需的JAR包的是。( D )
A: spring-web-4.3.6.RELEASE.jar
B: spring-webmvc-4.3.6.RELEASE.jar
C: ant-1.9.6.jar
D: xwork-core-2.3.24.jar
4.下列关于SSM框架的整合说法错误的是。(D )
A:Spring MVC与Spring之间不存在整合的问题。
B:SSM框架的整合就涉及到Spring与MyBatis的整合。
C:SSM框架的整合就涉及到Spring MVC与MyBatis的整合。
D:SSM框架的整合就涉及到Spring MVC与Spring之间的整合。
5.下面选项中,不属于整合SSM框架所编写的配置文件的是。( D )
A:db.properties
B:applicationContext.xml
C:mybatis-config.xml
D:struts.xml
-
判断题
- MyBatis映射文件中<mappers>元素是配置文件的根元素,它包含一个namespace属性,该属性为这个<mapper>指定了唯一的命名空间。( F )
- 使用MyBatis框架非常简单,只需在应用程序中引入MyBatis框架lib目录中的全部JAR包以及数据库驱动包即可进行项目运行。( F )
- ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。( T )
- MyBatis的更新操作也需要进行事务提交。( T )
- 创建的映射文件中的SQL语句要以面向对象的写法进行书写。( F )
<resultMap>的子元素<association>和<collection>用于处理多表时的关联关系。(T)- MyBatis映射文件的<insert>元素的属性与<select>元素的属性大部分相同,但还包含了3个特有属性。( T )
- MyBatis框架提供了许多默认别名,由于别名不区分大小写,所以在使用时要注意重复定义的覆盖问题。( T )
- 映射文件中可以包含多个id值相同的<resultMap>元素。( F )
- 与<insert>元素一样,<update>和<delete>元素在执行完之后,也会返回一个表示影响记录条数的整数。( T )
- 可以将任何可迭代对象(如列表、集合等)和任何的字典或者数组对象传递给<foreach>作为集合参数。( T )
- 在MyBaits映射文件中使用<set>和<if>元素组合进行update语句动态SQL组装时,如果<set>元素内包含的内容都为空,则会出现SQL语法错误。( T )
- MyBaits中对原始SQL中的“where 1=1”的条件可以使用<where>与<if>元素组合进行替换。( T )
- 在MyBatis中<if>元素用于单条件分支判断,当某个<if>的test属性判断成立,然后跳过其他<if>元素进行动态SQL组装。(F )
- MyBatis中的<foreach>元素可以用于对数组和集合循环遍历,批量执行SQL操作。( T )
- Spring中基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。( T )
- 通常在Java项目中,会采用通过FileSystemXmlApplicationContext类来实例化ApplicationContext容器的方式。(F )
- 初学者学习Spring框架时,只需将Spring的4个基础包以及commons-logging.jar复制到项目的lib目录,并发布到类路径中即可。( T )
- 依赖注入的作用就是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到Bean组件中。(T )
- Spring框架采用的是分层架构,它一系列的功能要素被分成20个模块。( T )
- @Component注解用于描述Spring中的Bean,它是一个泛化的概念,仅仅表示一个组件,并且可以作用在任何层次,使用时只需将该注解标注在相应方法上即可。(F )
- Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入。( F )
- 每次客户端请求singleton作用域的Bean时,Spring容器都会创建一个新的实例,并且不会管那些被配置成singleton作用域的Bean的生命周期。( F )
- Spring中使用prototype定义的Bean在Spring容器中将只有一个实例,也就是说,无论有多少个Bean引用它,始终将指向同一个对象。( F )
- 对于prototype作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期。( T )
- 如果在同一个连接点有多个通知需要执行,那么在同一切面中,目标方法之前的前置通知和环绕通知的执行顺序是未知的,目标方法之后的后置通知和环绕通知的执行顺序也是未知的。( T )
- AspectJ框架中的注解@After用于定义最终final通知,不管是否异常,该通知都会执行。( T )
- Spring配置文件中的<beans>元素下可以包含多个<aop:config>元素,一个<aop:config>元素中又可以包含属性和子元素,其子元素包括<aop:pointcut>、<aop:advisor>和<aop:aspect>。( T)
- Spring中的AOP代理默认就是使用CGLIB代理的方式来实现的。(F )
- Spring 3.0以后,Spring AOP引入了对AspectJ的支持,并允许直接使用AspectJ进行编程,而Spring自身的AOP API也尽量与AspectJ保持一致。(F )
- HandlerAdapter将ModelAndView对象返回给ViewReslover。( F )
- Spring4.3版本的配置文件中,必须要配置处理器映射器、处理器适配器和视图解析器,否则程序将无法运行。( F )
- <load-on-startup>元素中的1表示容器在启动时立即加载这个Servlet。( T )
- Spring MVC支持JSP、Velocity、XML和FreeMarker等视图技术。( F )
- Spring MVC的灵活性比较弱,易于与其他框架集成。( F )
- 在控制器类中,每一个请求处理方法都可以有多个不同类型的参数,以及一个多种类型的返回结果。( T )
- @RequestMapping的method属性必须使用。( F )
- @RequestMapping(method = RequestMethod.GET)可以缩写为@GetMapping。( T )
- @RequestMapping注解的属性都是可选属性。( T )
- Web.xml文件中必须使用<load-on-startup>元素和<init-param>元素,否则文件会报错。( F )
- 绑定数组与绑定集合页面传递的参数相同,只是后台接收方法的参数不同。( F)
- 要使用集合数据绑定,需要在包装类中定义一个包含用户信息类的集合,然后在接收方法中将参数类型定义为该包装类的集合。( T)
- 在执行绑定数组操作中,前台页面中复选框中传递的name属性值必须相同。( T)
- 注册自定义的Formatter转换器类时,Bean的类名必须是org.springframework.format.support.FormattingConversionServiceFactoryBean,并且其属性为formatters。( T )
- Formatter与Converter的作用相同,只是Formatter的源类型可以是任意类型,而Converter必须是一个String类型。( F )
- 在实际开发时,为了避免Spring配置文件中的信息过于臃肿,通常会将Spring配置文件中的信息按照不同的功能分散在多个配置文件中。( T )
- @Autowired注解需要标注在Service层的实现类上,这样才能实现依赖注入。( F )
- @Transactional注解主要是针对数据的增加、修改、删除和查询进行事务管理。( F)
- Spring与Spring MVC,Spring MVC与MyBatis需要相互整合。( F )
- 在Spring MVC的配置文件中,视图解析器是必须配置的。( F )
填空题
- MyBatis的删除操作在映射文件中是通过配置【 <delete> 】元素来实现的。
- MyBatis映射文件中<mapper>元素是配置文件的根元素,它包含一个【 namespace 】属性,该属性为这个<mapper>指定了唯一的命名空间。
- 使用MySQL中的【 concat() 】函数进行字符串拼接,可以有效防止模糊查询时可能出现的SQL注入问题。
- mybatis-config.xml作为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,其中主要内容是获取【 数据库连接 】。
- 【 MyBatis 】是当前主流的Java持久层框架之一,它与Hibernate一样,也是一种ORM框架。
- 当数据表中的列和需要返回的对象的属性不完全一致, MyBatis是不会自动赋值的。此时,就可以使用【 <resultMap> 】元素进行处理。
- <resultMap>元素的子元素<id>用于表示哪个列是【 主键 】,而【 <result> 】元素用于表示POJO和数据表中普通列的映射关系。
- MyBaits映射文件中使用<include>元素的【 refid 】属性可以引用自定义的代码片段,其属性值为自定义代码片段的id。
- MyBatis映射文件中<insert>的<selectKey>子元素的order属性可以被设置为【 BEFORE 】或【 AFTER 】。
- 对于数据源的配置,MyBatis框架提供了UNPOOLED、【 POOLED 】和JNDI三种数据源类型。
- 当在MyBaits文件中使用了<bind>元素,在SQL语句中可以直接引用<bind>元素的【 name 】属性值即可进行动态SQL组装。
- 在使用MyBaits的<foreach>时,如果传入的参数是多个的时候,就需要把它们封装成一个Map了,这时候collection属性值就为Map的【 键 】。
- 在MyBaits映射文件中使用<set>和<if>元素组合进行update语句动态SQL组装时,如果<set>元素内包含的内容都为空,则会出现【 SQL语法错误 】。
- MyBaits中<trim>元素的作用是去除一些特殊的字符串,它的【 prefix 】属性代表的是语句的前缀,而prefixOverrides属性代表的是需要去除的哪些特殊字符串。
- 使用<set>和<if>元素相结合的方式来组装update语句时,<set>元素就会动态前置【 SET 】关键字,同时也会消除SQL语句中最后一个多余的【 逗号 】。
- 依赖注入的作用就是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到【 Bean 】组件中。
- 在使用Spring框架之后,对象的实例不再由调用者来创建,而是由【 Spring容器 】来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。
- 在Spring入门程序中只需将Spring的4个基础包以及【 commons-logging 】的JAR包复制到lib目录中,并发布到类路径下即可。
- 简单来说,BeanFactory就是一个管理Bean的工厂,它主要负责初始化各种Bean,并调用它们的【 生命周期 】方法。
- Spring开发所需的JAR包分为两个部分:【 Spring框架包 】和【 第三方依赖包 】。
- 所谓自动装配,就是将一个Bean自动的注入到到其他Bean的【 Property 】中。
- @Controller通常作用在控制层,如Spring MVC的【 Controller 】,用于将控制层的类标识为Spring中的Bean,其功能与@Component 相同。
- 【 @Repository 】注解用于将数据访问层(DAO层)的类标识为Spring中的Bean,其功能与@Component 相同。
- 对于【 prototype 】作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期。
- 实例工厂方式采用直接创建Bean实例的方式,在配置文件中,需要实例化的Bean是通过【 factory-bean 】属性指向配置的实例工厂,然后使用factory-method属性确定使用工厂中的哪个方法。
- AspectJ框架中注解【 @Pointcut 】用于定义切入点表达式,在使用时还需定义一个包含名字和任意参数的方法签名来表示切入点名称。
- 在Spring配置文件中,<aop:aspect>子元素的pointcut-ref属性用于指定一个已经存在的【 切入点名称 】。
- 在Spring的配置文件中,配置切面使用的是【 <aop:aspect> 】元素。
- 在Spring中,使用【 ProxyFactoryBean 】是创建AOP代理的基本方式。
- AOP术语中【 Advice 】表示AOP框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。
- 前端控制器拦截请求后,会调用【 HandlerMapping 】。
- Spring MVC支持多种视图技术,包括【 JSP 】、Velocity和FreeMarker等。
- Spring MVC的配置文件中,可以配置处理器映射、处理器映射器、处理器适配器和【 视图解析器 】。
- Spring MVC提供了一个前端控制器【 DispatcherServlet 】,使开发人员无需额外开发控制器对象。
- 在Spring MVC的执行流程中,Controller执行完成后,会返回一个【 ModelAndView 】对象。
- RequestMapping注解类型用于映射【 一个请求或一个方法 】。
- 在使用Spring MVC的注解开发时,除了需要引入Spring的核心JAR包、Commons-logging的JAR包以及Spring MVC的2个JAR包外,还需要引入【 Spring AOP 】的JAR包。
- 在视图解析器配置中,可以设置视图的【 前缀和后缀 】。
- 如果没有通过<init-param>元素配置,则应用程序会默认去【 WEB-INF目录下 】寻找配置文件。
- 如果<load-on-startup>元素不存在,则应用程序会【 在第一个Servlet请求时 】加载该Servlet。
- 在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定,所以需要使用包装POJO作为形参,然后在包装POJO中包装一个【 集合 】属性。
- 使用包装POJO类型数据绑定时,如果前端条件参数是包装类中POJO的子属性,则参数名必须为【 对象.属性 】。
- 当前端请求的参数比较简单时,可以在后台方法的形参中直接使用Spring MVC提供的【 默认参数 】类型进行数据绑定。
- 如果将订单和用户的所有查询条件都封装在一个简单POJO中,显然会比较混乱,这时就可以考虑使用【 包装POJO 】类型的数据绑定。
- 在使用POJO类型数据绑定时,前端请求的参数名必须与要绑定的POJO类中的【 属性名 】一样,这样才会自动将请求数据绑定到POJO对象中,否则后台接收的参数值为【 null 】。
- SSM框架整合主要是【 Spring与MyBatis 】的整合,以及【 Spring MVC与MyBatis 】的整合。
- 为了避免Spring配置文件中的信息过于臃肿,通常会将Spring配置文件中的信息按照【 不同的功能 】分散在多个配置文件中。
- @Transactional注解主要是针对数据的【 增加、修改、删除 】进行事务管理。
- 在整合项目中,db.properties文件主要用于【 配置数据库常量 】。
- Spring与MyBatis框架的整合时,可以通过Spring【 实例化Bean 】,然后调用实例对象中的查询方法来执行MyBatis映射文件中的【 SQL语句 】,如果能够正确查询出数据库中的数据,就可以认为Spring与MyBatis框架整合成功。
简答题
1.请简要介绍MyBatis的工作原理。
答:(1)读取MyBatis配置文件mybatis-config.xml。
(2)由MyBatis配置文件加载映射文件Mapper.xml。
(3)通过MyBatis的环境等配置信息构建会话工厂SqlSessionFactory。
(4)由会话工厂创建SqlSession对象。
(5)MyBatis底层定义了一个Executor接口来操作数据库,它会根据SqlSession传递的参数动态的生成需要执行的SQL语句。
(6)在Executor接口的执行方法中,包含一个MappedStatement类型的参数,该参数是对映射信息的封装。
(7)在执行方法时,MappedStatement对象会对用户执行SQL语句的输入参数进行定义封装。
(8)在数据库中执行完SQL语句后,MappedStatement对象会对SQL执行输出的结果进行定义封装。
2. 请简述MyBatis映射文件中的常用元素及其作用。
答:<mapper>:映射文件的根元素,该元素只有一个namespace属性,用于区分不同的mapper,全局唯一。
<insert>:用于映射插入语句。
<delete>:用于映射删除语句。
<update>:用于映射更新语句。
<select>:用于映射查询语句。
<sql>:定义可以重用的SQL块。
<resultMap>:描述数据库结果集和对象的映射关系。
3.请简述MyBatis动态SQL中的常用元素及其作用。
答:<if>:判断语句,用于单条件判断。
<choose>(<when>、<otherwise>):相当于Java中的switch...case...default语句,用于多条件判断。
<where>:简化SQL语句中where的条件判断。
<trim>:可以灵活地去除多余的关键字。
<set>:用于SQL语句的动态更新。
<foreach>:循环语句,常用于in语句等列举条件中。
4. 请简述Spring中依赖注入的两种实现方式。
答:Spring中依赖注入有两种实现方式,一种是属性setter方法注入,另一种是构造方法注入。属性setter方法注入是指IoC容器使用setter方法来注入被依赖的实例。通过调用无参构造器或无参静态工厂方法实例化Bean后,调用该Bean的setter方法,即可实现基于setter方法的依赖注入。构造方法注入是指IoC容器使用构造方法来注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。
5.请简述Spring配置文件中<bean>元素的常用属性。
答:id:id属性是<bean>元素的唯一标识符,Spring容器对Bean的配置和管理通过id属性完成,装配Bean时也需要根据id值获取对象。
name:name属性可以为Bean指定多个名称,每个名称之间用逗号或分号隔开。
class:class属性可以指定Bean的具体实现类,其属性值为对象所属类的全路径。
scope:scope属性用于设定Bean实例的作用范围,其属性值有:singleton(单例)、prototype(原型)、request、session和global session。
6.请列举AOP实现中Spring提供的注解并解释其作用。
答:@Aspect:配置切面,@Pointcut:配置切点,@Before:配置前置通知,@After:配置后置通知,@Around:配置环绕方式,@AfterReturning:配置返回通知,@AfterThrowing:配置异常通知.
7.请简述Spring MVC框架的工作执行流程。
(1)用户通过浏览器向服务器发送请求,请求会被Spring MVC的前端控制器DispatcherServlet拦截。
(2)DispatcherServlet拦截到请求后,会调用HandlerMapping(处理器映射器)。
(3)处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
(3)DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理器适配器)。
(4)HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器。
(5)Controller执行完成后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名。
(6)HandlerAdapter将ModelAndView对象返回给DispatcherServlet。
(7)前端控制器请求视图解析器根据逻辑视图名解析真正的视图。
(8)ViewResolver解析后,会向DispatcherServlet中返回具体的View(视图)。
(9)DispatcherServlet对View进行渲染(即将模型数据填充至视图中)。
- 前端控制器向用户响应结果。
8.请列举@RequestMapping注解的常用属性,并说明其作用。
答:(1)value属性,用于指定请求的URL。value属性是@RequestMapping注解的默认属性。当value属性是@RequestMapping注解显式使用的唯一属性时,可以省略value的属性名。
(2)method属性,method属性可以对处理器映射的URL请求方式进行限定。当请求的URL和处理器映射成功,但请求方式和method属性指定的属性值不匹配,处理器也不能正常处理请求。
(3)params属性,params属性中定义的值可以将请求映射的定位范围缩小。当客户端进行请求时,如果请求参数的值等于params属性定义的值,可以正常执行所映射到的方法,否则映射到的方法不执行。
9.请简述简单数据类型中的@RequestParam注解及其属性的作用。
答:@RequestParam注解来定义参数的别名,完成请求参数名称和处理器的形参名称不一致时的数据绑定。@RequestParam注解的属性主要有以下几个。
name属性指定请求头绑定的名称。
value属性指name属性的别名,这里指参数的名称,即入参的请求参数名称,如value="name"表示请求的参数中,名称为name的参数的值将传入。
required属性用于指定参数是否必须,默认是true,表示请求中一定要有相应的参数。
defaultValue属性用于指定形参的默认值,表示如果请求中没有同名参数时的默认值。
10.请简述SSM框架整合思路。
(1)搭建项目基础结构。首先需要在数据库中搭建项目对应的数据库环境;然后创建一个Maven Web项目,并引入案例所需的依赖;最后创建项目的实体类,创建三层架构对应的模块、类和接口。
(2)整合Spring和MyBatis。在Spring配置文件中配置数据源信息,并且将SqlSessionFactory对象和Mapper对象都交由Spring管理。
(3)整合Spring和Spring MVC。Spring MVC是Spring框架中的一个模块,所以Spring整合Spring MVC只需在项目启动时 分别加载各自的配置即可。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/20642.html