当前位置 : 主页 > 编程语言 > 其它开发 >

Spring Boot 企业级开发教程—课后答案及部分解析

来源:互联网 收集:自由互联 发布时间:2022-05-30
Spring Boot 企业级开发教程给有需要的朋友做参考,有错误欢迎大家提出改正黑马程序员 第一章 填空题 Pivotal 团队在原有 spring 框架的基础上开发了全新的Spring Boot框架。 Spring Boot框架在
Spring Boot 企业级开发教程 给有需要的朋友做参考,有错误欢迎大家提出改正 黑马程序员

image

第一章

填空题

  1. Pivotal 团队在原有 spring 框架的基础上开发了全新的Spring Boot框架。
  2. Spring Boot框架在开发过程中大量使用 约定优于配置 的思想来摆脱框架中各种复杂的手动配置。
  3. Spring Boot 2.1.3版本要求 Java 8 及以上版本的支持。
  4. Spring Boot2.1.3版本框架官方声明支持的第三方项目构建工具包括有 maven(3.3+)gradle(4.4+)
  5. @RestController 注解是一个组合注解,主要包含 @Controller@ResponseBody 两个核心注解。

判断题

  1. Spring Boot 2.1.3版本要求Java7及以上版本的支持,同时兼容Java 11。(×) java8
  2. 使用Spring Initializr搭建Spring Boot项目,可以选择任意不同的Spring Boot版本,而无须修改。(×) 只有几个选项,选择的版本会随着springboot版本改变而改变,一般都是最新的那几个,如果需要,需要自己修改版本
  3. 使用Spring Initializr 搭建的Spring Boot项目会默认生成项目启动类。( √ )
  4. 编写单元测试需要提前加入spring- boot-starter-test测试依赖启动器。( √)
  5. Spring Boot提供了对所有第三方技术框架的整合支持和版本管理。(×) 例如mybatis就没有,不是所有的

选择题

1、以下选项中,哪些属于Spring Boot的优点? (ACD)( 多选)
A.可快速构建独立的Spring应用
B.无须打包即可快速部署优点里没有说这个,例如部署到linux系统里的话,应该还是得打包的,不然没办法部署啊
C.提供依赖启动器简化构建配置
D.极大程度地自动化配置了Spring和第三方库

2、IDEA 界面中,Configure —>Project Defauts 中的Project Structure主要作用是(A)
A.用于全局JDK初始化设置
B.用于全局Maven初始化设置
C.用于全局运行环境设置
D.以上都不对

3、下列关于Sping Boot项目各个包作用的说法, 正确的是( ABCD)(多选)
A. resources下static中用于存放静态资源文件
B. resources 下templales中用于存放模板文件
C. aplicaion.properties是项目的全局配置文件
D.以上都正确

4、下列关于Spring Boot依赖管理的说法,正确的是( B)
A. spring-boot-starter- parent父依赖可以为项目提供整合的子依赖文件
B. spring-boot-starter-parent 父依赖可以为项目提供整合的子依赖版本管理
C. Web场景开发依赖spring- boot- starter-web 可以针对所有Web场景开发 所有的不对
D. Web场景开发依赖spring-boot-starter-web的版本需要自行管理 parent会自动管理,我们也可以自己管理

5、下列关于Spring Boot自动配置原理的说法,错误的是(A)
A. @SpringBootApplication 只包含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan 3个注解 还有@Target、@Retention、@Documented、@Inherited,那三个是核心注解
B. @SpringBootConfiguration 注解表示当前类为一个配置类并可以被组件扫描器扫描
C. @EnableAutoConfiguration 的作用是启动自动配置,向容器中导入所有选中的自动配置类
D. @ComponentScan注解的主要作用是扫描指定包及其子包下所有注解类文件作为Spring容器的组件使用

第二章

填空题

  1. 默认情况下, Spring Boot生成的全局配置文件是 application.properties
  2. Spring Boot项目中,application.yaml 文件使用 key: (空格)value 格式配置属性。 可不是缩进啊
  3. Spring Boot提供的 @ConfigurationProperties 注解可以批量将配置文件的属性注入Bean对象。
  4. 使用 @Value 注解注入配置文件属性时,支持SpEL表达式语法。
  5. Spring Boot中能够使用 @Profile 注解进行多环境配置。

2.2 判断题

  1. application.yaml配置文件的属性类型只能是数组类型。(错) 应该全部类型都能使用
  2. 使用@ConfigurationProperties 注解注入属性值时,必须为对应的属性提供setter方法。(对)
  3. @Value注解是 Spring Boot提供的,用来读取配置文件的属性并能够批量注入Bean (错) spring提供的
  4. @Value注解支持所有数据类型的属性读取和注入。(错) @Value只能支持注入基本数据类型,@ConfigurationProperties支持注入基本数据类型和复杂数据类型,感觉后者相对强大一点
  5. spring boot 可以使 @PropertiesResoure 注解引入xML配置文件。(错)@ImprotResoure加载xml配置文件,@PropertiesResource指定自定义配置文件位置和名称

选择题

1、下列关于 Spring Boot全局配置文件的说法,正确的是(ABC)。(多选)
A Sping Boot 支持 application.properties 全局配置文件
B SpingBoot 支持 application.yaml 全局配置文件
C SpingBoot 支持application.yml 全局配置文件
D SpingBoot 全局配置文件必须在项目resouces 根目录下 类路径的/config下也能识别

2、下列关于YAML配置文件的说法,正确的是(B)
A. YAML 配置文件的内容是key: vlaue"形式的键值对,并使用缩进式写法 这个不叫缩进
B. YAML配置文件的行内式写法配置单列集合属性, 包含属性值的中括号“[]”可以省略
C. YAML 配置文件的行内式写法配置双列集合属性,包含属性值的大括号“{}” 可以省略 不可以省略
D.以上都不对

3、下列关于ConfiurationProperies 注解的说法中,正确的是(B)
A. @ConfigurationProperties 注解只能作用于类 一般批量注入使用@ConfigurationProperties,单个注入使用@Value,但是单个也能使用前者,批量不能使用后者
B.使用@ConfigurationProperties 注解为Bean注入属性时,必须为Bean设置setter方法
C. @ConfigurationProperties注解必须和@Component结合使用
D.要想使@ConfigurationProperties 注解注入的属性生效,必须使用@EnableConfigurationProperties注解开启注入

4、下列关于@ConfigurationProperties 和@Value注解的说法,正确的是(C)
A. @ConfigurationProperties 和@Value注解都是Spring Boot框架自带的 @ConfigurationProperties是Springboot带的,@Value是spring自带的
B. 进行属性值注入时,Coniguratioroperties和@Value注解配置中必须设置属性的setter方法 @Value不需要setter方法
C. @CnfigurationProperties 注解进行配置文件属性值注入时,支持JSR303数据校验
D. @Value 注解进行配置文件属性值注入时,支持松散绑定语法 不支持,@Value只支持SpEL表达式

5、下列关于Spring Boot的Profle多环境配置的说法,错误的是(D)
A. Spring Boot提供了两种多环境配置的方式: Profile 文件多环境配置和@Proflie注解多环境配置
B. Profle配置文件的名必须满足aplpaion-{profile}-properties的格式
C。可以在项目全局配置文件中配置spring.proflles.acive属性激活指定的多环境配置文件
D.在多个自定义类上直接使用@Profile注解可以进行多环境配置 还需要把他们声明为组件@Configuration

第三章

填空题

  1. MyBatis为了利用Spring Boot的便利性,适配了对应的依赖启动器 mybatis-spring-boot-starter
  2. Spring Boot 2.x版本默认使用的是 hikari 数据源。
  3. 在Spring Boot项目启动类上添加了 @MapperScan(“xxx”) 注解,来替代@Mapper注解。
  4. Spring Data JPA中,@Entity 标注在类上,还要使用 name 属性指定具体映射的表名。
  5. Redis 提供了多种功能特性,可用作非关系型数据库、缓存插件、消息中间件 等。

判断题

  1. Spring Boot官方为所有常用技术框架都提供了对应的依赖启动器。(错) mybatis就没有
  2. Spring Boot为整合MyBatis技术框架提供了版本管理。(错) 他就没有整合parent不能管理,需要我们自行手动管理
  3. Spring Boot操作MySQL数据库时,还必须配置指定的数据源类型。(错) spring2.x默认hikari,hikari很强大、1.x版本默认org.apache.tomcat.jdbc.pool.DataSource
  4. Spring Boot全局配置文件设置Druid数据源相关参数后,还需要自定义配置类注入这些属性。(对)
  5. Spring Boot JPA中映射的实体类属性上的@Column注解可以省略。(对)

选择题

1、下列关于Spring Boot整合MyBatis实现的说法,正确的是(C)。
A. Spring Boot整合MyBatis必须提供mybatis-spring-boot-starter 依赖 这个不清楚
B. @MapperScan(“xxx”)注 解的作用和@Mapper注解一样 肯定不一样啊,一个作用于启动类上,扫描那个包下的所有类作为Mapper组件;一个表示把该类作为Mapper组件。
C.在全局配置文件中配置MyBatis的XML映射文件位置要使 mybatis.mapper-locations属性
D.使用注解方式编写MyBatis接口文件数据修改方法时,还需要使用@Transactional 注解 修改不是@Update吗,这个我不清楚是什么

2、下列关于 Spring Data JPA映射的实体类中相关注解的说法,正确的是(D)
A.使用Spring Data JPA进行数据查询映射时,需要在配置文件中开启驼峰命名映射 数据库使用的和实体类里面的命名规则相同就不用开启了,开启应该是匹配那些带-的,例如数据库命名student_id;在实体类里面一般会命名为studentId这样就不匹配,如果数据库里使用驼峰命名就不用了把
B. 使用@Entity注解时,还要使用name属性指定具体映射的表名 不指定时,可以默认的
C. @ld注解必须标注在类属性上,表示主键对应的属性 标注在类属性或getter方法上,表示某一属性对应表中主键,这错的太牵强了吧
D. @Transient注解表示指定属性不是到数据库表的字段的映射,ORM框架将忽略该属性

3、使用Spring Boot整合Spring Data JPA编写Repository接口时,下列说法错误的是(BC)。(多选)
A.自定义Repository接口可以继承CurdRepository接口
B.可以在方法上添加@Update注解结合SQL语句实现数据修改 @Query(“UPDATE....")
C.可以在方法上添加@Delete注解结合SQL语句实现数据删除 @Query("DELETE...")
D.进行数据变更操作时,必须在Repository接口方法上添加@Transient 注解

4、Redis 是一个开源内存中的数据结构存储系统,可以用作(ABCD)。 (多选)
A.数据库
B.缓存中间件
C. 消息中间件
D.以上都正确

5、当Redis作为数据库时,下列与Spring Boot整合使用的相关说明,正确的是(A)
A. @RedisHash(“persons”)用于指定 操作实体类对象在Redis数据库中的存储空间
B. @ld用于标识实体类主键,需要手动指定id生成策略 有默认的不指定也可以
C.使用Redis数据库,必须为实体类属性添加@Indexed属性生成二级索引
D.编写操作Redis数据库的Repostory接口文件时,需要继承JpaRepository 接口 继承CrudRepository,不是JpaRepositiry

第四章

填空题

  1. 针对于WebFlux 框架的整合实现,Spring Boot 实现了与 FreeMarker 、Thymeleaf 和 Mustache模板引擎技术的整合支持和自动化配置。
  2. Thymeleaf 是适用于Web 和独立环境的现代服务器端Java模板引擎。
  3. 针对HTML页面处理,Thymeleaf 的 th:each 属性可以进行数据遍历。
  4. 使用Thymeleaf模板进行HTML页面处理,可以使用 data-th-* 属性替换th:*属性进行页面开发。
  5. Thymeleaf 模板中使用 ${#locale.country} 可以动态获取当前用户所在的国家信息。

判断题

  1. Spring Boot不能使用JSP进行项目开发。(错) 不太支持,但是可以进行开发,需要配置一些东西,例如解析器,后缀改为.jsp,tomcat等,打成war包时支持jsp,jar包不支持
  2. 如果想要使用Thymeleaf模板进行纯HTML 5的页面开发,可以使用data-th-* 属性替换th: *属性进行页面开发。(对)
  3. Thymeleaf 是针对Web开发中HTML静态页面的处理,实现动态数据展示。(错) Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。 这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式
  4. SpringBoot中编写国际化时,必须要在全局配置文件进行国际化文件配置。(错) 当你的信息编写为messages.properties时,springboot是可以默认识别的,不用配置
  5. 国际化文件的名称必须严格按照“文件前缀名_语言代码_国家代码.properties"的形式命名。(对)

选择题

1、以下选项中,Spring Boot整合Spring MVC框架支持的模板引擎技术有(ABCD)。(多选)
A. FreeMarker
B. Groovy
C. Mustache
D. Thymeleaf

2、关于Spring Boot整合JSP模板技术的限制,以下说法错误的是(D)
A. Spring Boot默认的JAR包部署方式不支持JSP模板 war包可以支持jsp,jar包不支持,正确
B. Undertow嵌入式容器部署Spring Boot项目,不支持JSP模板 undertow(红帽公司)也不支持jsp
C.使用JSP模板时,无法对默认的错误处理器进行覆盖 对,只能根据springboot的要求在指定位置定制页面错误
D.使用JSP模板时,无法自定义错误页面 既然可以使用jsp,就能够定义错误界面

3、Thymeleaf 支持处理哪些模板页面? (ABCD)( 多选)
A. HTML
B. XML
C. JS
D. CSS

还有TEXT、RAW

4、以下关于Thymeleaf模板中th:*属性的说法,错误的是(A)。
A. th:forEach 属性用来进行数据遍历 th:each
B. th:utext 属性进行文本内容展示,且不进行转义
C. th:fragment属性用来声明片段
D. th:value 属性用于内容修改

5、Spring Boot中,可以存放静态资源文件的位置有(ABCD)。(多选)
A. 项目 根路径下的METANF/resoures/文件夹下
B.项目根路径下的resources及其子文件夹下
C.项目根路径下的static文件夹下
D.项目根路径下的public及其子文件夹下

第五章

填空题

  1. Spring Boot项目中定制Spring MVC的扩展功能,需要提供实现 WebMvcConfigurer 接口的配置类。
  2. WebMvcConfigurer 接口中的 addViewControllers() 方法可以定制视图管理。
  3. WebMvcConfigurer 接口中的 addInterceptors() 方法可以定制自定义的拦截器。
  4. Spring Boot中,使用路径扫描方式整合Servlet 组件时,需要用 @ServletComponentScan 注解开启组件扫描。
  5. Spring Boot整合Spring MVC实现文件上传时,默认单个文件上传大小限制为 1MB

判断题

  1. Spring Boot为整合Spring MVC实现Web开发提供了欢迎页index.html支持。(对)
  2. Spring Boot中实现Spring MVC的扩展功能,要提供实现WebMvcConfigurer接口的配置类,并开启@EnableWebMvc注解。(错) 实现部分扩展功能不需要开启@EnableWebMvc注解,当你想全部使用自定义的配置管理是,需要开启该注解
  3. Spring Boot中整合Servlet 的Listener组件时,在自定义Listener 上添加@Component 即可生效。(错) 只是做以上步骤并不能生效,上述过程只是声明一个组件并没有注册,你还需要在配置类中注册该组件
  4. Spring Boot整合Spring MVC实现中文名文件下载时,针对IE内核浏览器需要转码为UTF-8(对) IE是UTF-8、火狐等是ISO-8859-1
  5. spring boot 提供的打包插件spring-boot-maven-plugin 可以将项目打成Jar包和War包。(对)

选择题

1、SpingBoot为整合Spring MVC实现Web开发,提供的功能特性不包括(C)。
A. 配置视图解析器
B. 对WebJars的支持
C. 对拦截器的自动配置 需要自己配置,不能自动配置
D. 对HtpMessageConverters 消息转换器的支持

2、Spring boot整合 Sevlet组件涉及的注册Ben组件有(ACD)。(多选)
A. ServletRegistrationBean Servlet
B. InterceptorRegistationBean 拦截器的是先实现HanderInterceptor接口,让后在MVC配置类里重写addInterceptors方法注册的
C. FilterRegistrationBean Filter
D. ServletListenerRegistrationBean Listener

3、Spring boot中使用路径扫描的方式整合内嵌式Sevlet组件时,需要使用的注解有(ABC)。(多选)
A. @WebFilter
B. @ServletComponentScan
C. @WebListener
D. @WebInterceptor 拦截器

4、下列关于Spring Boot整合Spring MVC实现文件上传及下载的说法中,正确的是(B)
A. 必须使用spring.servlet.multipart.max-file-size来设置单个上传文件的大小限制 默认1MB
B.处理上传文件方法中,可以使用List类型的参数来接收处理单个或多个上传文件
C.文件上传存储目录“F:/file/” 需要提前创建好 不需要事先创建
D.对中文文件进行下载时,如果没有进行中文转换,下载的中文文件内容会出现乱码 中文名文件,名字会乱码

5、下列关于Spring Boot项目War包方式打包部署的说法中,错误的是(C)
A. 必须使用 标签将Spring Boot项目默认的Jar包方式修改为War
B. 需要将sring-boot-starter-tomcat使用provided声明为已提供provided
C. 必须让主程序启动类继承SpringBootServletInitializer类并实现configure()方法 1.实现这种目的还有另外的操作,不一定是主启动类继承,还可以让其他子类继承,实现configure方法. 2、这么做的目的是让Servlet启动时可以进行配置,那不操作是不是不能进行配置,这一点我没有实际操作。
D. 以War包方式部署项目进行访问,必须在访问路径上添加打包后的项目名

第六章

填空题

  1. Spring Boot中 @EnableCaching 注解用于开启基于注解的缓存支持。
  2. @Cacheable 注解是由Spring框架提供的,通常用在数据查询缓存方法上。
  3. Spring Boot中进行缓存存储时,对于一个参数的方法,其key值是 默认参数值
  4. Simple 缓存组件是Spring Boot默认的缓存管理组件,它默认使用内存中的 ConcurrentHashMap 进行缓存存储。
  5. Redis 操作客户端类中,StringRedisTemplate 专门针对<String, String>字符串类型的数据进行操作。RedisTemplate可以操作<Object,Object>,其子类StringRedisTemplate操作<String,String>

判断题

  1. @EnableCaching 注解是Spring Boot框架提供的,用于开启基于注解的缓存支持。(错)spring提供的
  2. @Cacheable 注解的cacheNames属性名可以省略。(对)
  3. @Cacheable注解的unless属性在指定条件为true 时,方法的返回值就不会被缓存。(对)
  4. 在对实体类数据进行Redis默认缓存存储时,如果没有实现序列化,就会出现类型转换异常的错误。(错) 一些基本数据类型不需要进行序列化,Springboot内部默认实现了序列化接口
  5. 自定义RedisTemplate组件时,方法名必须是redisTemplate(错) 我们知道在注册bean时,bean有属性id、name等属性,当我们不自定义这些属性时,spring会默认使用我们的方法名小写作为bean名称,但是我们也可以自定义名字,我们只需要bean名字是redisTemplate就可以了,不需要方法名一定是这个名字。至于为什么名字一定要是这个,在于redis源码中有一段代码是这样写的@CoditionalOnMissingBean{name={"redisTemplate"}意思为,当没有自定义的组件时,默认生效,反之使用自定义的,这就要求我们自定义bean的名字是有要求的,但方法名没要求

选择题

1、下列关于Spring Boot中提供的缓存管理的相关注解的说法,正确的是(D)
A. @EnableCaching 注解是spring boot提供的, 用于开启基于注解的缓存支持 spring
B. @Cacheable注解作用于方法上,用来对查询结果进行缓存 这个好像也不错,但是感觉应该是作用于数据查询方法上,没有查询结果怎么进行缓存呢,对中选最对的吧
C. @CacheEvict 注解用于更新缓存数据 删除缓存数据
D. @CacheConfig 注常使用在类上,主要用于统筹管理类中所有使用@Cacheable、@CachePut和@CacheEvict注解标注的方法中的公共属性

2、下列关于springboot中Redis缓存注解相关属性的说法,错误的是(C)
A value 和cacheNames属性作用相同,用于指定缓存的名称空间
B. key 属性的作用就是指定缓存数据对应的唯一标识, 默认使用注解标记的方法参数值
C. unless属性的作用是当指定的条件为true时,方法的返回值就会被缓存 为true不缓存
D. sync 属性表示数据缓存过程中是否使用异步模式,默认值为false

3、下列关于Spring Boot中RedisTemplate进行数据缓存管理的说法, 正确的是(ACD)(多选)
A. RedisTemplate 是spring Data Redis 提供的,可以对<Object, Object>类型数据进行操作
B. RedisTemplate 类的set()方法可以进行数据缓存存储 RedisTempate没有set方法,他应该是通过redisTemplate.opsForvale()的set方法
C. RedsTemplate 类的delect()可以进行缓存数据删除
D. RedsTemplate 类的expire()可以进行设置缓存有效期

4、Spring Boot中支持的缓存组件有(ABCD)(多选)
A. Jcache
B. EnCache2x
C. Redis
D. Caffeine

5、下列关于将Spring Boot 定制Redis缓存序列化机制的说法,错误的是(A)
A. 自定义RedisTemplate组件时,方法名必须为为redisTemplate 不必须
B. 在定制序列化方式中,要定义一个ObjectMapper 用于进行数据转换设置
C. Spring Boot 1x 版本中,定制 RedisTemplate组件序列化配置后,就完成了基于API和注解方式Redis序列化的定制
D. 使用自定义RedisTmplate序列化机制缓存存储实体类数据,实体类不用再实现序列化 这个看书上写的是实现自定义序列化机制的RedisCacheManager测试时,实体类不需要实现序列化接口,这个地方不太理解

第七章

填空题

  1. SpringBoot整合SpringSecurity安全框架实现的安全管理功能有 MVC Security、WebFlux Security、OAuth2、Actuator Security。
  2. Security默认提供一 个可登录的用户信息,用户名为user, 密码为随机生成
  3. 重写WebSecurityConfigurerAdapter类的 configure(AuthenticationManagerBuilder auth) 方法可以自定义用户认证。
  4. 重写WebSecurityConfigurerAdapter类的 configure(HttpSecurity http) 方法可以对基于HTTP的请求访问进行控制。
  5. 自定义WebSecurityConfigurerAdapter类上的 @EnableWebFluxSecurity 注解用于开启基于WebFlux Security的安全支持。

判断题

  1. 项目中引入spring-boot-starter-security依赖后,还需要使用@EnableSecurity开启安全管理支持。(错) 不需要开启@EnableSecurity注解,就能使用,这个注解是开启注解安全支持的
  2. WebSecurityConfigurerAdapter类的cnfigure(HttpSecurity http)方法用于构建认证管理器(错) 用于请求用户访问控制
  3. 初始化权限表数据时,权限值必须带有 "ROLE."前缀。(对)
  4. 定义JDBC身份认证时,定义权限查询的SQL语句必须返回用户名、密码和权限几个字段信息。(错) 权限查询需要返回用户名、权限。用户查询需要返回用户名、密码、是否是有效用户
  5. 定义UserDetailsService身份认证时,如果用户为空,需要抛出UserNotFoundException异常。(错) 抛出的是UserNameNotFoundException异常

选择题

1、Spring Security提供了多种自定义认证方式,包括有(ABCD)。(多选)
A. JDBC Authentication JDBC身份认证
B. LDAP Authentication LDAP身份认证
C. AuthenticationProvider 身份认证提供商
D. UserDetailsService 身份认证详情服务

还有In-Memory Authentication 内存身份认证

2、下列关于使用JDBC身份认证方式创建用户/权限表以及初始化数据性说法,错误的是(D)
A.用户表中的用户名username必须唯一
B.创建用户表时,必须额外定义一个tinyint类型的字段
C.初始化用户表数据时,插入的用户密码必须是对应编码器编码后的密码
D.初始化角色表数据时,角色值必须带有“ROLE_” 前缀 没有角色表,初始化权限表时必须要这个前缀

3、下列关于configue(HttpSecurity http)方法中参数HttpSecurity类的说法,正确的是(ABCD)(多选)
A. autreRequests()法开启基于HtSesletReque请求访问的限制
B. formLogin()方法开启基于表单的用户登录
C. rememberMe()方法开启记住我功能
D. csrf()方法配置 CSRF跨站请求伪造防护功能

4、下列关于自定义用户登录中的相关说法,错误的是(B)。
A loginPage(Sting loginPage)指定用户登录页面跳转路径,默认为GET请求的 /login
B. failureUrl (Sting authenticationFailureUrl 指定用户登录失败后的跳转地址,默以为/login?failure 默认跳转为/login?error
C. loginProcessingUrl(String loginProcessingUrl)指定登录表单提交的路径,默认为POST,请求的 /login
D. 项目加入Security 后,可以不对 static 文件夹下的静态资源文件进行统一放行处理

5、下列关于使用Security 整合Thymeleaf 实现页面的管理的说法,错误的是(B)
A. Spring Boot2.1.3版本中添加thymeleaf-extras-springsecurity5依赖不需要手动指
定版本号
B. sec:authorize="!isAuthenticated()"用于判断用户没有认证 isAuthenticated()判断用户是否登录,登陆了显示用户信息和注销链接,加个!表示非。我猜时没有登录显示注销链接和信息,反正感觉逻辑优点错误
C. sec:authorize="hasAuthority(‘ROLE vip’)"用于判断用户是否有ROLE_vip权限
D. sec:authentication=“name” 属性用于显示登录用户名name

第八章

填空题

  1. 目前开源的消息中间件常用的有 ActiveMQ、RabbitMQ、Kafka、 RocketMQ等。
  2. RabbitMQ是基于 AMQP 协议的轻量级、可靠、可伸缩和可移植的消息代理。
  3. 在Work queues工作模式中,连接消息队列的多个消息消费者通过 轮询 的方式消费
  4. 消息。
  5. 在Publish/Subscribe工作模式中,必须先配置一个 fanout 类型的交换器。
  6. RabbitMQ 服务默认提供了两个端口号 567215672

判断题

  1. ActiveMQ性能相对较好,在如今的高并发、大数据处理的场景下非常适用。(错) ActiveMQ出现的比较早,对于高并发、大数据处理性能并不是太好
  2. ActiveMQ是Apache公司出品的、采用Java语言编写的基于JMS规范的面向消息的中间件。(对)
  3. RabbitMQ 中的Work queues工作模式不需要设置交换器。(对)
  4. 在Publish/Subscribe工作模式中,每个消息消费者都会接收消息。(对)
  5. SpringBoot中加入RabbitMQ依赖后,无须任何配置就可以使用RabbitMQ消息中间件。(对) 虽然可以进行配置,如果RabbitMQ不做任何更改,那么springboot也可使用默认参数进行使用

选择题

1、开发中,使用到消息服务的需求场景主要包括(ABCD)。(多选)
A.异步处理
B. 应用解耦
C.流量削锋
D.分布式事务管理

2、以下关于消息中间件的说法,错误的是(D)。
A. RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议
B Redis服务可以作为消息中间件提供服务
C. RocketMQ 是Apache的顶级项目,具有高吞吐量、高可用等特点 RocketMQ是阿里巴巴的开源项目,也是Apache的顶级项目,这句话并没有错
D. ActiveMQ是Apacle出品的、基于JMS协议的高性能中间件 高性能不对

3、RabbiMQ中提供了哪几种交换器类型? (ABCD)(多选)
A. direct
B. fanout
C. topic
D. headers

4、RabbitMQ提供的工作模式不包括(A)。
A.单点模式
B.发布订阅模式 Publish/Subscribe
C.路由模式 Routing
D. Headers 模式

Work queues(工作队列模式)、Topics(通配符模式)、RPC

5、以下关于基于注解方式定制RabbitMQ消息组件中的相关注解及说法,错误的是(A)。
A.需要使用@EnableRabbit 开启基于注解的支持
B. @RabbitListener标记在消息消费者方法上,会立即监听并消费消息队列中的消息
C. @RabitListener 注解的queues属性可以定制消息队列
D. @QueueBinding 注解包括有value type、 key 等属性

第九章

填空题

  1. Spring Boot中使用 @EnableAsync 注解来开启基于注解的异步任务支持。
  2. Spring 框架提供了一个 @Async 注解来定义异步方法。
  3. Spring Boot中处理有返回值的异步方法时,可以定义返回值为 Future 类型。
  4. @Scheduled 注解的 fixedDelay或fixedDelayString 属性表示在上一次任务执行结束后在指定时间后继续执行下一次任务。
  5. Spring Boot需要在项目启动类上使用 @EnableScheduling 注解来开启基于注解的定时任务支持。

判断题

  1. @EnableScheduling 注解是Spring Boot提供的,用于开启基于注解方式的定时任务支持(对) 作用于项目启动类上
  2. @Schedule注解的fixedRate属性表示每隔指定时间执行一次任务。(对) 属性值为long类型
  3. @Scheduled注解的cron属性值中星期字段值0表示星期一。(错) 0和7都表示星期日SUN
  4. @Scheduled 注解的fixedRate属性用来指定每相隔一段时间重复执行一次定时任务,单位是毫秒。(对)
  5. SpringBoot 中配置QQ邮件服务器用户信息时,要配置准确的用户名和密码。(错) 需要的是qq邮箱的授权码,1毛钱即可开通

选择题

1.以下关于Spring Boot中异步任务的使用及说明,错误的是(C)

A. Spring Boot项目中引入 spring-boot-starter-web依赖后可以进行异步任务管理
B. @EnableAsync 注解用来开启基于注解的异步任务支持
C.对于所有异步任务,主线程方法会与其他异步方法同时进行,不受干扰 当返回值较多时主线程执行异步任务时会短暂阻塞,需要等待并获取异步方法返回结果,其他的子线程并行执行,直到所有子线程完成并返回结果,主线程跳出阻塞,开始执行
D.异步任务可以极大地缩减总流程的执行时间

2.以下关于@Scheduled的相关属性,说法正确的是( D)。
A. cron属性表示cron的表达式,可以定制定时任务的秒、分钟、小时、日、月、星期、年 秒、分钟、小时、月中日、月、周中的日,没有年
B. zone指定cron表达式将被解析的时区,默认为Asia/Shanghai 默认是空字符串即表示使用服务器的本地时区
C. fixedRate 表示在上一次任务执行结束后在指定时间后继续执行下一次任务 重复执行该任务
D. initialDelayString 表示在 fixedRate或 fixedDelay任务第一次执行之前要延迟的毫秒数

3.以下关于定时任务注解中表示每月的26日每一分钟都执行,写法正确的是(A)
A. @Scheduled(cron = "0 * * 26 * ?”)
B. @Scheduled(cron = "0 0 0 26 * ?”) 表示每月26日的0时0点0分0秒执行一次
C. @Scheduled(cron="0 * * 26 * * ”) 这是个错误的写法,日期和星期不能同时指定,当日期指定了,星期就要用?;星期指定了,日期要用?
D. @Scheduled(cron=* * * 26 * ?) 表示每月26日的每分每秒

4.以下关于Spring Boot中发送复杂邮件的相关说法,正确的是(AB)(多选)
A.发送复杂邮件,需要创建 MimeMessage 对象
B.发送复杂邮件,需要使用MimeMessageHelper并设置multipart多部件使用为true
C.通过 FileResource 对象可以构建发送的附件或内置资源文件
D.添加邮件内置静态资源文件需要使用MimeMessageHelper的addAttachment()方法

5.以下关于Spring Boot中借助 Thymeleaf发送模板邮件的相关说法,正确的是(ABCD)
(多选)
A.需要使用MimeMessageHelper帮助类,并设置 multipart多部件使用为true
B.需要使用Context 对象定制邮件动态内容
C. 需要使用解析器 TemplateEngine的process(String template, lContext conte

点赞收藏吧
网友评论