1、如果传播行为是 Propagation.REQUIRES_NEW,哪个说法最能描述传播行为?(选择一项)
A.如果存在活动事务,则在嵌套事务中运行;如果没有活动事务,则抛出一个异常
B.如果已经存在事务,则支持该事务;如果没有活动事务,则抛出一个异常
C.总是启动新事务;如果已经存在活动事务,则暂停该事务
D.总是启动新事务;如果已经存在活动事务,则抛出一个异常
【正确答案】C
【答题时间】2022-02-26 04:06:38
【答案解析】
2、关于 Spring 对 JPA 的支持,以下哪个说法是正确的?(选择一项) (1) Spring 支持结合本地或全局事务管理 JPA PersistenceContexts (2) JPA 提供者是通过设置 EntityManagerFactoryBean 上的 vendor adapter 属性来指定的 (3) 在管理本地事务时,JpaTransactionManager 使用 JPA EntityManagers 来完成这项工作
A.第(1)、(2)种说法是正确的
B.所有的说法都是正确的
C.这些说法都不正确
D.第(2)、(3)种说法是正确的
E.第(1)、(3)种说法是正确的
【正确答案】B
【答题时间】2022-02-26 04:06:38
【答案解析】
3、以下哪项是对@PropertySource 注解的最佳解释?(选择一项)
A.用于方便地从某个外部属性文件中查找并返回单个属性值
B.用于从某个外部来源向 Spring Environment 添加一组额外的 name/value 对
C.用于指定 Spring Boot 应用程序中 application. properties 文件的位置
D.Spring 框架中没有这样的注解
【正确答案】B
【答题时间】2022-02-26 04:06:38
【答案解析】
4、以下关于在 JUnit 集成测试中使用@Transactional 注解的说法中,哪项不是正确的的?(选择一项)
A.只有当 test 类或 test 方法被注解为@Commit(false)时,事务才会在测试后回滚出来
B.默认情况下,每次测试后,事务将自动回滚
C.用@Transactional 来注解 test 类,会使其所有的 test 方法在事务中运行
D.用@Transactional 来注解 test 方法,会使 test 方法在事务中运行
【正确答案】A
【答题时间】2022-02-26 04:06:38
【答案解析】在单元测试方法上使用@Transactional 注解,会使得测试完成后自动回滚(即使无任何异常抛出),除非显式的在方法 上添加@Commit 注解。 另,@Commit 注解不可配置参数,即选项 A 中的代码片段是误
5、考虑下图中的事务服务层类。 @Transactional(timeout=60) public class ClientServiceImpl implements ClientService { @Transactional(timeout=30) public void update1(){} } } 对事务的 update1 方法应用什么超时设置?(选择一项)
A.这将无法编译。不能在类级声明 timeout,propagation 以及 isolation 等属性
B.30
C.60
D.90
E.这将无法编译。不能在方法级声明 timeout,propagation 以及 isolation 等属性
【正确答案】B
【答题时间】2022-02-26 04:06:38
【答案解析】
6、关于 Spring和单元测试,以下哪个说法是正确的?(选择一项)
A.Spring提取了现有的Mock框架
B.Spring提供了一个内部的Mock框架,所以不需要第三方的Mock框架,如 Mockito或 EasyMock
C.前两个答案是正确的
D.前两个答案都不正确
【正确答案】B
【答题时间】2022-02-26 04:06:38
【答案解析】本题选项可能因为随机打散导致理解困难。
7、以下哪个说法最能说明使用 Spring Framework 在单元测试方面的好处?(选择一项)
A.你的 Java 代码通常在 Spring Framework 类上有依赖项,这些类的设计是为了使单元测试的工作更容易
B.Spring Framework 鼓励你按接口编程,这样可以更容易地在代码中存根或模拟出依赖项
C.Spring Framework 框架鼓励你尽可能地在一个测试中结合单元测试和集成测试
D.Application Context 在初始化时进行了大量的运行时检查,使得传统的单元测试变得不那么重要
【正确答案】B
【答题时间】2022-02-26 04:06:38
【答案解析】
8、默认情况下, Spring Boot 将自动在以下哪个地方查找属性文件?(选择一项)
A.与 Application 的主@Configuration 类名称相匹配的一个 properties 文件
B.application. properties 或 application.yml,通常位于根 classpath 中
C.config.properties 或 config.yml,通常位于根 classpath 中
D.Spring Boot 不会自动查找任何属性文件,除非特别指示(例如使用@PropertySource)
【正确答案】B
【答题时间】2022-02-26 04:06:38
【答案解析】Spring Boot looks for application.properties in these locations (in this order) : "/config" sub-directory of the working directory; The working directory; "config" package in the classpath; classpath root、
9、如果传播行为是 Propagation.REQUIRED,哪个说法最能描述传播行为:(选择一项)
A.如果存在活动事务,则在嵌套事务中执行;如果没有事务,则启动一个新的事务
B.如果已经存在事务,则在该事务中执行;如果没有事务,则在没有事务上下文的情况下执行
C.如果已经存在事务,则在该事务中执行;如果没有事务,则启动一个新的事务
D.如果已经存在事务,则在该事务中执行;如果没有活动事务,则抛出一个异常
【正确答案】C
【答题时间】2022-02-26 04:06:38
【答案解析】
10、考虑下图中的事务性服务层类。你使用的是 Spring 事务,它内部使用 Spring AOP 调用 update1 方法时,发生了什么事情? (选择一项) public class ClientServiceImpl implements ClientService{ @Transactional (propagation=Propagation.REQUIRED) public void update1(){ update2(); } @Transactional(propagation=Propagation.REQUIRES_NEW) public void update2(){ } }
A.只有一个事务,因为如果已经存在一个事务,REQUIRES_NEW 将使用一个活动事务
B.有 2 个事务,因为 REQUIRES_NEW 总是在一个新的事务中运行
C.只有一个事务,因为对 update2()的调用是内部的(不通过代理)
【正确答案】C
【答题时间】2022-02-26 04:06:38
【答案解析】C:Spring 管理事务是基于接口代理的,如果是内部调用,则不重新经过代理对象,则无事务的特性,即在“内部调用” 时,被调用的方法上的@Transactional 是无效的,注解参数更加没有任何意义。
11、Spring 将每个 bean 实例放在一个作用域中。默认的作用域是什么?(选择一项)
A.request
B.session
C.prototype
D.singleton
【正确答案】D
【答题时间】2022-02-26 04:06:38
【答案解析】Spring 管理对象默认的作用域是单例的,即 singleton。
12、考虑下面的代码示例。以下哪个说法是正确的?(选择一项) public interface CustomerRepository extends CrudRepository {}
A.为了成功使用任何 Spring Data 实现(JPA、 MongoDB、 Gemfire 等), Customer 类上需要 JPA 注解
B.该类的实现可以由 Spring Data JPA 自动生成
C.实现 CustomerRepository 的类必须由开发者编码并声明为 Spring Bean
D.CustomerRepository 应该是一个类,而不是一个接口
【正确答案】B
【答题时间】2022-02-26 04:06:38
【答案解析】
13、考虑下面的 Java 配置类,声明的 bean 的 id/名称是什么?(选择一项) @Configuration public class AppConfig{ @Bean public ClientService clientService(){ return new ClientServiceImpl(); } }
A.clientServiceImpl(以小写"c"开头)
B.clientService(以小写"c"开头)
C.ClientServiceImpl(以大写"C"开头)
D.ClientService(以大写"C"开头)
【正确答案】B
【答题时间】2022-02-26 04:06:38
【答案解析】默认的 Bean id/name 是@Bean 方法名称,也可通过@Bean 注解的方法
14、当使用 Spring Boot 配置和运行 Web 应用程序时,你应包含哪个依赖项以在开发过程中更改代码时启用应用程序的自动重启?(选择一项)
A.spring-boot-starter-devtools
B.spring-boot-restart
C.spring-boot-devtools
D.spring-boot-initializr
【正确答案】C
【答题时间】2022-02-26 04:06:38
【答案解析】
15、关于 Spring 的 JUnit 4 或 JUnit 5 集成测试支持,以下哪个说法是正确的?(选择一项)
A.为每个测试方法初始化并创建一个新的 ApplicationContext
B.在一个应用程序中,你必须使用 JUnit 4 或 JUnit 5 进行所有的测试
C.你可以通过@ContextConfiguration 来说明测试类将使用哪些配置类
D.为了获取要测试的 Spring Bean 的引用,你需要在提供的 Application Context 上调用 getBean()
【正确答案】C
【答题时间】2022-02-26 04:06:38
【答案解析】
16、入门 POM 最恰当的描述是什么?(选择一项)
A.一个特定的 POM,你必须构建它来控制 Boot 的意见运行时
B.一种简单的方法,可以包含多个与特定技术相关的、协调的依赖项,如 web 或 JDBC
C.一种设置,用于指定你希望 Spring Boot 生成的代码
D.一个已有的模型项目,供你下载并作为项目的基础
【正确答案】B
【答题时间】2022-02-26 04:06:38
【答案解析】
17、关于 Spring 事务,以下哪些说法是正确的?(选择三项)
A.如果事务性方法抛出任何异常包括检查异常, Spring 将回滚事务
B.可以使用@EnableTransactionManagement 启用事务
C.可以把@Transactional 放在任何方法上,以表示它应该是事务性的
D.可以将@Transactional 放在任何接口上,以表示它的所有方法都应该是事务性的
【正确答案】B,C,D
【答题时间】2022-02-26 04:06:38
【答案解析】A:检查异常 = Checked Exception,需要显式的 try...catch 或 throw 的异常,即非 RuntimeException,例如 IOException 等,Spring 管理事务时,默认的回滚规则是“Rollback if method throws a RuntimeException”,当然,也可以修改@Transactional 的 rollbackFor / noRollbackFor 属性进行控制。
18、关于 CommandLineRunner 和 ApplicationRunner,以下哪些说法是正确的?(选择两项)
A.你在 Spring Boot 应用程序中只能有一个 CommandLineRunner 或一个 ApplicationRunner
B.如果你需要 ApplicationArgumentsiString 而不是原始数组你应该实现 ApplicationRunner 而不是 CommandLineRunner
C.不能将依赖项 bean 注入 CommandLineRunner 或 ApplicationRunner 中
D.需要将 CommandLineRunner 或 ApplicationRunner 创建为一个 bean
【正确答案】B,D
【答题时间】2022-02-26 04:06:38
【答案解析】--- CommandLineRunner : Offer run() method, handling arguments as an array; --- ApplicationRunner : Offer run() method, handling arguments as ApplicationArguments, a more sophisticated argument handling mechanism.
19、在 Spring 中使用事务需要以下哪些内容?(选择两项)
A.将@EnableTransactionManagement 添加到一个 Java 配置类中
B.写一个 Spring AOP advice 来实现事务性行为
C.用@Transactional 注解来注解一个需要事务的接口、类或单个方法
D.用@Service 和@Transactional 注解来注解一个类
【正确答案】A,C
【答题时间】2022-02-26 04:06:38
【答案解析】
20、关于 Spring Boot Testing,以下哪些说法是正确的?(选择两项)
A.在 Spring Boot 应用程序中,每个测试类都必须用@SpringBootTest 来注解
B.你不能指定配置类作为@SpringBootTest 的属性
C.@SpringBootTest 通常用于集成测试
D.用@SpringBootTest 注解的测试代码没有任何配置类,在应用程序中只有一个用@SpringBootConfiguration 注解的类
【正确答案】C,D
【答题时间】2022-02-26 04:06:38
【答案解析】
21、关于@SpringBootTest,以下哪些说法是正确的?(选择两项)
A.即使其他配置类被显式地指定,它也会搜索用@SpringBootConfiguration 注解的类
B.如果你使用 RANDOM_PORT、DEFINED_PORT 或 MOCK,服务器会被测试框架启动和停止
C.它自动配置了一个 TestRestTemplate bean
D.它支持不同的 webEnvironment 模式,如 RANDOM_PORT、DEFINED_PORT、MOCK 和 NONE
【正确答案】C,D
【答题时间】2022-02-26 04:06:38
【答案解析】
22、Spring-boot-starter-test 提供了哪些依赖项?(选择三项)
A.Cucumber
B.spring-test
C.Hamcrest
D.JUnit
E.EasyMock
【正确答案】B,C,D
【答题时间】2022-02-26 04:06:38
【答案解析】
23、JdbcTemplate 可以用来查询哪些类型的对象?(选择三项)
A.Domain Objects
B.简单类型(int、long、 String 等)
C.JSONObject
D.Generic Maps
【正确答案】A,B,D
【答题时间】2022-02-26 04:06:38
【答案解析】
24、如何访问 application. properties 或 application.yml 文件中定义的属性?(选择两项)
A.通过调用 ApplicationContext 对象的 getProperty(...)方法
B.通过自动创建的 Properties 对象
C.通过 Spring Environment 对象
D.通过一个@Value 注解的构造函数参数
【正确答案】C,D
【答题时间】2022-02-26 04:06:38
【答案解析】
25、JdbcTemplate 执行哪些操作:(选择三项)
A.获得连接
B.执行语句
C.定义数据源
D.生成 SQL 语句
E.解除连接
【正确答案】A,B,E
【答题时间】2022-02-26 04:06:38
【答案解析】Spring handle : Acquisition of the connection; participation in the transaction; execution of the statement; processing of the result set; handling exceptions; release of the connection.
26、关于@WebMvcTest,以下哪些说法是正确的?(选择两项)
A.当有一个依赖项 bean 要被模拟时,它通常会与@MockBean 结合使用
B.它通常与 JUnit4 中的@RunWith(MockitoJUnitRunner.class)或 JUnit5 中的@ExtendWith(MockitoExtension. class)一起使用
C.它自动配置了一个 MockMvc bean
D.它用于在运行中的服务器上测试 Spring MVC 组件,如@Controller
【正确答案】A,C
【答题时间】2022-02-26 04:06:38
【答案解析】
27、以下哪些说法是 Spring Transaction Management 的特点?(选择三项)
A.它简化了向分布式事务的迁移
B.从本地事务切换到分布式事务,只需更改 Spring 配置就可以了
C.它提取了本地事务和分布式事务的区别
D.在本地事务和分布式事务的代码中事务失败的处理方式需要有所不同
【正确答案】A,B,C
【答题时间】2022-02-26 04:06:38
【答案解析】
28、关于 Spring Boot 自动配置的自定义,以下哪些说法是正确的?(选择两项)
A.你可以通过将自动配置类子类化,明确地禁用一些自动配置
B.你可以通过在 application. properties 文件中设置一个属性或使用@EnableAutoConfiguration 注解上的 exclude 属性来明确地禁用一些自动配置
C.如果某些自动配置不适合你的需要,你可以明确地禁用它
D.你只能禁用所有的自动配置。即,你不能只禁用部分自动配置
【正确答案】B,C
【答题时间】2022-02-26 04:06:38
【答案解析】AutoConfiguration can be controlled by : properties; explicit bean definition; disabling of auto configuration; altering dependency versions.
29、当在一个类上使用@SpringBootApplication 时,以下哪些说法是正确的?(选择两项)
A.它使 Spring Boot 启用自动配置
B.由于该类不是一个@Configuration 类,所以在该类中不能有@Bean 方法
C.它使 Spring 从该类的包开始执行组件扫描
D.它使 Spring Boot 构建一个可执行的 JAR 应用程序
【正确答案】A,C
【答题时间】2022-02-26 04:06:38
【答案解析】
30、下图显示了一个创建 JdbcTemplate bean 的条件式@Bean 方法 @Bean @ConditionalOnBean(name = "dataSource") public JdbcTemplate jdbcTemplate(DataSource dataSource){ return new JdbcTemplate(dataSource); } 以下哪些说法正确地描述了下面的代码?(选择两项)
A.该代码存在语法错误
B.当已经创建了一个名为"dataSource"的 bean 时,将创一个 JdbcTemplate bean
C.应将@ConditionalOnBean(name = "dataSource")替换为@ConditionalOnBean(DataSource.class).以提高灵活性
D.当 DataSource 类在 classpath 中,但不存在 DataSource bean 时,将创建一个 JdbcTemplate bean
【正确答案】B,C
【答题时间】2022-02-26 04:06:38
【答案解析】@ConditionalOnBean 的作用:仅当注解参数的 Bean 存在时,才会执行当前@Bean 方法。
31、以下哪些是@Transactional 注解的有效可选属性?(选择两项)
A.writeOnly
B.nestedTransaction
C.isolation
D.propagation
【正确答案】C,D
【答题时间】2022-02-26 04:06:38
【答案解析】
32、关于 Spring 的 JPA 支持,以下哪些说法是正确的?(选择两项)
A.Spring 可以使用@Transactional 注解将多个 JPA persistence 操作协调到一个事务中
B.在使用 JPA 时,Spring 需要一个 persistence.xml 配置文件,因为 JPA 规范中要求这个文件
C.Spring 允许将 EntityManagerFactory 配置为 Spring Bean
D.Spring 提供了自己的 JPA 实现
【正确答案】A,C
【答题时间】2022-02-26 04:06:38
【答案解析】
33、关于基于 Spring Boot 的 Web 应用程序的"fat"jar,以下哪些说法是正确的?(选择两项)
A."fat"jar 必须是 JAR 文件,不能是 WAR 文件
B."fat"jar 可以包含多个嵌入式服务器
C."fat"jar 会被 Spring Boot Maven 插件或 Gradle 插件构建起来
D."fat"jar 可以在容器和云平台上轻松部署
【正确答案】C,D
【答题时间】2022-02-26 04:06:38
【答案解析】
34、以下哪些说法描述了 Spring 的 JdbcTemplate?(选择两项)
A.JdbcTemplate 提供了处理结果集的能力
B.所有的 JdbcTemplate 方法都会抛出你需要处理的 SQLExceptions
C.JdbcTemplate 提供了查询执行的方法
D.JdbcTemplate 为你生成 SQL 语句
【正确答案】A,C
【答题时间】2022-02-26 04:06:38
【答案解析】
35、假设一个 Spring Boot应用程序只有两个依赖项,如下所示。 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependencies> 关于DataSource和JdbcTemplate和beans的自动配置,以下哪些说法是正确的?(选择两项)
A.将使用嵌入式数据库自动创建一个DataSource bean
B.如果classpath根目录下有data.sql和schema.sql文件,将自动创建DataSource bean
C.不会自动创建JdbcTemplate bean
D.如果你明确配置了自己的DataSource bean,则会自动创建一个JdbcTemplate bean
【正确答案】C,D
【答题时间】2022-02-26 04:06:38
【答案解析】
36、关于 TestRestTemplate,以下哪些说法是正确的?(选择两项)
A.当使用 TestRestTemplate 的 getForObject(..)方法时,你需要提供完整的路径(就像你在 RestTemplate 中做的那样),而不是作为第一个参数的相对路径
B.它可以方便地替代 RestTemplate 进行集成测试
C.它是 RestTemplate 类的一个子类
D.当使用@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)时,预先配置的 TestRestTemplate 知道向哪个端口发送请求
【正确答案】B,D
【答题时间】2022-02-26 04:06:38
【答案解析】
37、关于@DataJpaTest,以下哪些说法是真的?(选择两项)
A.它既可以用来测试JPA组件,也可以用来测试NoSQL组件
B.它使用一个内存数据库作为默认的数据源
C.它自动配置了一个TestEntityManager bean
D.TestEntityManager提供了Entity Manager所提供的所有方法,还有更多的方法
【正确答案】B,C
【答题时间】2022-02-26 04:06:38
【答案解析】
38、当多个 bean 与依赖项的类型相匹配时,以下是可能的自动布线机制。其中哪个是正确的?(选择两项)
A.只在 setter 方法中使用@Qualifier 注解(@Autowired 对于 setter 是可选的)
B.使用@Qualifier 和@Autowired 注解以及 setter 方法
C.在字段上同时使用@Qualifier 和@Autowired 注解
D.只在字段上使用@Qualifier 注解(@Autowired 对字段是可选的)
【正确答案】B,C
【答题时间】2022-02-26 04:06:38
【答案解析】自动布线:Autowired,即自动装配。 本题考察如果有多个类型相同的 Bean 时,如何实现自动装配。 除了构造方法以外,无论是通过 Setter 还是字段注入,都必须使用@Autowired 注解,当存在多个类型相同的 Bean 时, 还必须配合@Qualifier 一起使用,即在同一处同时使用这 2 个注解
39、关于 Spring Boot,以下哪些说法是正确的?(选择两项)
A.Spring Boot 会生成你的应用程序所需的所有应用程序级别的配置文件
B.Spring Boot 允许不同的打包选项,例如将 Tomcat 打包为应用程序 JAR 文件中的嵌入式容器
C.Spring Boot 是一个苛刻的运行时,它要求遵守规定的方法,不能有任何偏差
D.Spring Boot 试图让开发者摆脱最可预测的低级设置
【正确答案】B,D
【答题时间】2022-02-26 04:06:38
【答案解析】
40、以下关于@Autowired 注解的哪些说法是正确的?(选择两项)
A.可以使用 Autowired 将多个参数注入到一个方法中
B.默认情况下,如果一个依赖项不能用@Autowired 来满足, Spring 会抛出一个 RuntimeException
C.它不能用来注解字段,只能用来注解构造函数和方法
D.如果在一个类上使用了@Autowired,则会自动对所有的依赖项进行字段注入
【正确答案】A,B
【答题时间】2022-02-26 04:06:38
【答案解析】C:不能用于注解字段,错误; D:@Autowired 不是用于类上的。
41、关于 application.properties或application.yml文件,以下哪些说法是正确的?(选择两项)
A.你只能用它定义 Spring Boot 属性,你必须将你的属性放在不同的文件中
B.如果它们位于当前目录的"/config"子目录下, Spring Boot 会找到它们
C.即使在环境中或使用命令行参数定义属性,application. properties 或 application.yml 中的属性总是覆盖其他的属性
D.在特别的属性文件中定义的属性,如 application-production.properties 或 application-production.yml,将覆盖在application. properties 或 application.yml 文件中定义的属性
【正确答案】B,D
【答题时间】2022-02-26 04:06:38
【答案解析】Spring Boot looks for application.properties in these locations (in this order) :"/config" sub-directory of the working directory; The working directory; "config" package in the classpath; classpath root.
42、关于 Spring 和 Spring Boot Testing,以下哪些说法是正确的?(选择两项)
A.spring-boot-starter-test 依赖项提供了@Mock 和@MockBean 等注解
B.你可以使用@SpringBootTest 或@ContextConfiguration 来创建 Spring 应用上下文
C.它同时支持集成测试和分片单元测试
D.它支持即用的 EasyMock
【正确答案】B,C
【答题时间】2022-02-26 04:06:38
【答案解析】--- Spring Boot Testing Framework provides a set of annotations and utilities for testing: @SpringBootTest, @WebMvcTest, @WebFluxTest, @DataJpaTest, @DataJdbcTest, @JdbcTest, @DataMongoTest, @DataRedisTest, @MockBean. --- Integration Testing with @SpringBootTest : Automatically searches for @SpringBootConfiguration, it is an alternative to @ContextConfiguration for creating application for testing, Use @SpringBootTest for integration testing and use @ContextConfiguration for slice
43、以下哪些会影响 Spring Boot 的自动配置?(选择三项)
A.classpath 的内容
B.特定 bean 的预先存在
C.你的应用程序的包结构
D.在 application.properties 或 application.yml 文件中设置的特定外部属性,如 spring.datasource.*属性等
E.无论你的应用是否是一个多模块对象
【正确答案】A,B,D
【答题时间】2022-02-26 04:06:38
【答案解析】AutoConfiguration can be controlled by : properties; explicit bean definition; disabling of auto configuration; altering dependency versions.
44、关于@EnableAutoConfiguration 注解,以下哪些说法是正确的?(选择两项)
A.如果没有 application. properties 或 application.yml 文件,就不能使用它
B.它是由@SpringBootConfiguration 合成的注解的元注解
C.它是由@SpringBootApplication 合成的注解的元注解
D.它使 Spring Boot 自动创建它认为应用程序需要的 bean
【正确答案】C,D
【答题时间】2022-02-26 04:06:38
【答案解析】
45、以下哪些说法描述了 JdbcTemplate 的特性?(选择两项)
A.它提供了一种处理结果集的回调方法
B.开发者仍然负责从/到连接池获取和释放一个连接
C.它可以抛出 checked exceptions
D.它将根原因 checked exceptions 翻译成 Spring 的 DataAccessException 类型
【正确答案】A,D
【答题时间】2022-02-26 04:06:38
【答案解析】
46、以下哪些注解是由@Spring Boot Application 组成的注解的元注解?(选择两项)
A.@SpringBootConfiguration
B.@Autowired
C.@SpringApplication
D.@ComponentScan
【正确答案】A,D
【答题时间】2022-02-26 04:06:38
【答案解析】@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan( excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class} ), @Filter( type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class} )} ) public @interface SpringBootApplication { }
47、哪些说法表明使用 Spring 的依赖注入的潜在优势:(选择三项)
A.应用组件之间的依赖项可以在组件本身的外部进行管理
B.配置可以外部化并集中在一小组文件中
C.测试变得更容易,因为在单元测试时,可以很容易地将 mock dependency 对象注入到依赖对象中
D.依赖注入帮助 IDE 生成一些代码
E.依赖注入可以减少应用程序的启动时间
【正确答案】A,B,C
【答题时间】2022-02-26 04:06:38
【答案解析】D:Spring 并不能作用于 IDE; E:应用程序的启动时间与依赖注入机制没有关系,一定程度上来说,由于 Spring 默认以饿汉式管理 Bean,由于有了依赖 注入,启动时间反而更久一些
48、考虑下图中的类。 @Entity public class Customer { @Id private Long id; private String name; private Date orderDate; private String email; } 以下哪些 Repository 方法可以由 Spring Data JPA 自动实现?(选择两项)
A.public Customer getSingle(Long id);
B.public Customer findFirstByOrderDateBetween(Date d1, Date d2);
C.public Customer findFirstOrderDateMax();
D.public Customer findByEmail(String email);
【正确答案】B,D
【答题时间】2022-02-26 04:06:38
【答案解析】JPA Repository : Auto-generated finders obey naming convention : find(First)By, can be GreaterThan / NotEquals / Between / Like ...
49、关于 Spring Boot 自动配置,以下哪些说法是正确的?(选择两项)
A.当缺少 bean 时,可能会发生自动配置。但当存在 bean 时,不会发生自动配置
B.自动配置是通过处理 Spring Boot 提供的自动配置类列表来执行的,每个自动配置类都使用不同的条件集
C.只有在应用级配置完成后,才会出现自动配置的情况
D.自动配置发生在应用级配置之前和之后
【正确答案】B,C
【答题时间】2022-02-26 04:06:38
【答案解析】Auto-configuration classes processed after explicitly created beans are defined.
50、 关于 Spring Data,以下哪些说法是正确的?(选择两项)
A.Spring Data 将 JPA 编程模型和 JPA 注解应用于 MongoDB、Neo4j 和 Redis 等非关系型数据存储中
B.Spring Data 是专门为 JPA 和关系型数据库访问而设计的
C.许多数据存储类型都有 Spring Data 实现,如 MongoDB、Neo4j 和 Redis
D.Spring Data 可以极大地减少数据访问所需的"boilerplate"代码量
【正确答案】C,D
【答题时间】2022-02-26 04:06:38
【答案解析】