Spring 认证

本文是一份关于Spring Security配置的在线测试题目,涵盖了授权规则、单元测试、Spring框架好处、Mock框架使用、HTTP方法、依赖注入、REST原则、Spring Boot特性等多个方面。测试涉及了代码示例,解析了Spring Security中HTTP安全配置的最佳实践,以及Spring在单元测试、代码管理和API设计等方面的使用技巧。
摘要由CSDN通过智能技术生成

   
|  得分: 满分:2分 1、【单选题】 
考虑下面的 Spring Security 配置
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.mvcMatchers("/accounts/*").hasRole("USER")
.mvcMatchers("/accounts/editAccount.htm").hasRole("ADMIN");
}
or
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/accounts/*").hasRole("USER")
.antMatchers("/accounts/editAccount.htm").hasRole("ADMIN");
}
请注意,上面的代码并没有遵循一个良好的实践,即更特别的匹配器应该放在次特别的匹配器之前。然而,按原样使用这代码哪个角
色可以访问"/accounts/editAccount. htm"?(选择一项)
 A.
USER 或 ADMIN
 B.
不需要角色
 C.
USER
 D.
ADMIN
【正确答案】C
【答题时间】2023-05-15 08:26:24
【答案解析】题目中是 2 段代码,针对本题而言,效果是完全相同的; Recommended : Use mvcMatchers, uses same matching rules as @RequestMapping, newer API, less error-prone. Examples : --- antMatchers("/admin").hasRole("ADMIN") --> Only matches /admin --- mvcMatchers("/admin").hasRole("ADMIN") --> Matches /admin, /admin/, /admin.html, /admin.xxx 当使用 antMatchers()或 mvcMatchers()设置请求认证规则时,对于 URL 是第 1 匹配规则生效,后续再次设置的规则不 生效。
  
|  得分: 满分:2分 2、【单选题】 
以下哪个说法最能说明使用 Spring Framework 在单元测试方面的好处?(选择一项)
 A.
你的 Java 代码通常在 Spring Framework 类上有依赖项,这些类的设计是为了使单元测试的工作更容易
 B.
Spring Framework 鼓励你按接口编程,这样可以更容易地在代码中存根或模拟出依赖项
 C.
Spring Framework 框架鼓励你尽可能地在一个测试中结合单元测试和集成测试
 D.
Application Context 在初始化时进行了大量的运行时检查,使得传统的单元测试变得不那么重要
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 3、【单选题】 
关于 Spring和单元测试,以下哪个说法是正确的?(选择一项)
 A.
Spring提取了现有的Mock框架
 B.
Spring提供了一个内部的Mock框架,所以不需要第三方的Mock框架,如 Mockito或 EasyMock
 C.
前两个答案是正确的
 D.
前两个答案都不正确
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】本题选项可能因为随机打散导致理解困难。
  
|  得分: 满分:2分 4、【单选题】 
关于在 Spring Boot Web切片测试中使用Mock,以下哪个选项是正确的?
 A.
如果在Web切片测试 Spring应用情境中已经存在 Spring Bean,则不能对其进行Mock
 B.
Mock不能用于 Spring Boot Web切片测试。
 C.
Mock Spring Bean需要使用@Mock注解对其进行注解
 D.
Mock Spring bean需要使用@MockBean注解对其进行注解
【正确答案】D
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 5、【单选题】 
考虑下面的方法签名。
@PutMapping("/accounts/{id}")
public void update(...) {...}
以下哪种方法是检索账户 id 的有效方法?(选择一项)
 A.
public void update(@PathVariable long accountId)
 B.
public void update(@RequestParam("id") String accountId)
 C.
public void update(@RequestParam long accountId)
 D.
public void update(@PathVariable("id") String accountId)
【正确答案】D
【答题时间】2023-05-15 08:26:24
【答案解析】题干中的“检索”并不是数据库的检索,只是获取@PutMapping 参数里 id 的值。 如果要获取 URL 中占位符对应的参数值,需要使用@PathVariable 注解,如果设计的方法参数名称与 URL 中占位符名称 不同,则需要配置@PathVariable 注解参数。 对于 Spring 框架而言,只需要值可以填充,可以无视参数类型(Spring 会转换),例如请求中的存在某属性值为 100, 在设计方法参数时,使用 int / long / Integer / Long / String 等都是可以的。 所以,本题的方法参数可以设计为@PathVariable String id,或@PathVariable long id,或 @PathVariable("id") String xxx 等。
  
|  得分: 满分:2分 6、【单选题】 
给定一个ApplicationContext包含三个类型为"Foo"的bean定义,其 bean id分别为foo1、foo2和foo3,以下哪些@Autowired方案是有效的,并允许ApplicationContext成功初始化?(选择一项)
 A.
@Autowired @Qualifier("foo") Foo foo;
 B.
@Autowired public void setFoo(@Qualifier("foo1") Foo foo) {...}
 C.
@Autowired public void setFoo(Foo foo) {...}
 D.
@Autowired private Foo Foo;
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】由于存在3个类型相同的Spring Bean,在自动装配时,必须保证Spring框架知晓装配哪一个,可以使用了@Qualifier注解并显式的指定Bean id,也可以通过属性名匹配了其中1个Bean id,也是可行的,如果没有指定有效的Bean id,按类型又无法装配,这样的代码会导致初始化Spring环境时的运行时错误。
  
|  得分: 满分:2分 7、【单选题】 
根据 REST 原则,更新编号为 1234 的 Order 的最佳方式是什么?(选择一项)
 A.
向/orders/1234 发送 PUT 请求
 B.
向/orders/1234 发送 POST 请求
 C.
向/order/edit?id=1234 发送一个 POST 请求
 D.
向/order/edit?id=1234 发送 PUT 请求
【正确答案】A
【答题时间】2023-05-15 08:26:24
【答案解析】在 RESTful 风格中,简单的网络请求可以不将本意体现在 URL 中,只需要表明处理哪类数据、哪个数据等必要参数即可, 且根据请求方式进行区分操作类型,GET 用于获取数据,POST 用于新增数据,PUT 用于修改数据,DELETE 用于删除数 据。
  
|  得分: 满分:2分 8、【单选题】 
如果你用@Component 来注解一个类,你应该做以下哪项才能让 Spring 自动检测到注解的类并将其加载为 bean?(选择一项)
 A.
确保为该类指定一个有效的@Scope
 B.
确保在 Java 配置中指定一个有效的@ComponentScan 注解
 C.
确保在@Component 注解中指定一个有效的 bean 名称
 D.
确保为类指定一个有效的@Bean
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】A:@Scope 用于指定作用域; C:Spring 管理 Bean 可以生成默认的名称,不一定需要显式的指定名称; D:@Bean 注解不是用于类的。
  
|  得分: 满分:2分 9、【单选题】 
阅读以下代码,如何通过代码中的UserLogin类创建 Spring bean?(选择一项)  
public class UserLogin {
  private static UserLogin ul;
  private UserLogin () {} 
  public static UserLogin getUl () {
    if(ul == null){
      ul = new UserLogin ();
    }
    return ul;
}
}
 A.
在外部的配置类中的@Bean方法,使用new关键字来创建对象
 B.
从@Bean方法中调用UserLogin.getUl(),并返回实例
 C.
Spring中的消除歧义可以自动获取对象
 D.
不可能,构造函数必须是公共的,私有的构造,外部无法new对象
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】通过@Configuration注解类和@Bean注解方法是显示的创建bean通过@ComponentScan(“包名”)扫描@Component等组件注解类,可以隐式创建bean,私有的构造方法,不能从外部通过new关键字创建对象
  
|  得分: 满分:2分 10、【单选题】 
入门 POM 最恰当的描述是什么?(选择一项)
 A.
一个特定的 POM,你必须构建它来控制 Boot 的意见运行时
 B.
一种简单的方法,可以包含多个与特定技术相关的、协调的依赖项,如 web 或 JDBC
 C.
一种设置,用于指定你希望 Spring Boot 生成的代码
 D.
一个已有的模型项目,供你下载并作为项目的基础
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 11、【单选题】 
6 请参考图示。 

@RestController

public class OrderController {

?    ...

?    @PutMapping("/store/orders/{id}")

?    void update (@PathVariable String id, @RequestBody Order order) {

?        ...

?    }

}
如何为 No Content (204)设置响应状态码?
 A.
使用 @PutMapping (“/store/orders/ {id}", HttpStatus.NO_CONTENT)来注解 update () handler method
 B.
使用 @ResponseStatus (HttpStatus.NO_CONTENT)来注解 update () handler method
 C.
update () handler method 不能返回 void 类型,它必须返回 ResponseEntity 类型
 D.
使用 @ResponseEntity(204) 来注解 update () handler method
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 12、【单选题】 
在ApplicationContext中定义使用singleton作用域的两个MyBean类型的bean,id为"myBean"1和"myBean2"。getBean(String id)方法对每个bean被调用一次。关于返回的两个引用,哪个说法是正确的?(选择一项)
 A.
编译的过程会直接报错,无法通过编译
 B.
两个引用指向同一个bean实例
 C.
当ApplicationContext被初始化时,可以正常启动
 D.
其中一个引用,存储的是另外一个引用的地址的值
【正确答案】C
【答题时间】2023-05-15 08:26:24
【答案解析】Spring中允许相同类型不同名称的bean存在,类型虽然相同,但是每一个bean都是不同的实例,初始化的时候不会报错,但是在使用@Autowired进行注入的时候,会产生歧义
  
|  得分: 满分:2分 13、【单选题】 
以下哪些注解是由@SpringBootApplication组成的注解的元注解?(选择一项)
 A.
@SpringConfiguration
 B.
@SpringBoot
 C.
@SpringApplication
 D.
@ComponentScan
【正确答案】D
【答题时间】2023-05-15 08:26:24
【答案解析】除基本注解外,@SpringBootApplication的元注解有@SpringBootConfiguration和@ComponentScan以及@EnableAutoConfiguration
  
|  得分: 满分:2分 14、【单选题】 
关于 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
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 15、【单选题】 
关于 BeanPostProcessor扩展点,以下哪些说法是正确的?(选择一项)
 A.
BeanPostProcessors在bean生命周期的init阶段被调用
 B.
不可以实现自定义 BeanPostProcessor
 C.
BeanPostProcessor在bean准备好随时可用后,会在使用的时候被调用
 D.
是一个类,不可以被继承和实现
【正确答案】A
【答题时间】2023-05-15 08:26:24
【答案解析】Bean初始化的流程会先执行BFPP,然后遍历所有Bean,查找和创建依赖,之后进行实例化即构造函数注入,setter注入,接下来进行初始化的流程,在流程里面有BPP,执行后即Bean准备好,随时可用BFPP和BPP两个都可以自定义实现,其中PropertySourcesPlaceholderConfigurer是典型的BFPP的实现,用于读取Environment中的属性值
  
|  得分: 满分:2分 16、【单选题】 
使用下面的图片,考虑遗留类。如何从这个遗留类创建 Spring bean?(选择一项)
public class LegacySingleton {
  private static LegacySingleton instance;
  private LegacySingleton() {
  } 
  public static LegacySingleton getInstance() {
    if(instance == null){
      Instance = new LegacySingleton();
    }
    return instance;
}
}

 A.
从@Bean 方法返回一个 LegacySingleton 的实例, Spring 会自动调用 getInstance()
 B.
从@Bean 方法中调用 LegacySingleton.getInstance(),并返回实例
 C.
采用自动布线
 D.
不可能,构造函数必须是公共的
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】注意:本题题干中的“遗留类”指的就是代码中的 LagacySingleton 类,类名中的 Lagacy 的译义中有“遗留”的意思。 A:Spring 能自动调用的方法只有被 Spring 上下文加载的类中的@Bean 方法,以上代码中,LagacySingleton 不是被 Spring 上下文加载的类,所以不可能自动调用; C:自动布线(自动装配)是用于为属性注入值的; D:Spring 是基于反射的,无视访问权限。
  
|  得分: 满分:2分 17、【单选题】 
Spring将每个bean实例放在一个作用域中。若方法上有@Scope(value=”prototype”),则作用为以下哪一项(选择一项)
 A.
request
 B.
session
 C.
prototype
 D.
singleton
 E.
不允许指定prototype,会报错
【正确答案】C
【答题时间】2023-05-15 08:26:24
【答案解析】Spring中bean的默认的作用域是单例的,即singleton,可以通过@Scope来指定,@Scope(value=”prototype”)
  
|  得分: 满分:2分 18、【单选题】 
Spring RestTemplate 类:(选择一项)
 A.
A.    可以用来发送和接收使用Spring的RequestEntity的和ResponseEntity定义的数据
 B.
不能在服务端应用中使用
 C.
在使用前需要为其明确定义 HttpMessageConverters
 D.
只能用于与使用 Spring MVC 实现的服务器进行对话
【正确答案】A
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 19、【单选题】 
默认情况下, Spring Boot 将自动在以下哪个地方查找属性文件?(选择一项)
 A.
与 Application 的主@Configuration 类名称相匹配的一个 properties 文件
 B.
application. properties 或 application.yml,通常位于根 classpath 中
 C.
config.properties 或 config.yml,通常位于根 classpath 中
 D.
Spring Boot 不会自动查找任何属性文件,除非特别指示(例如使用@PropertySource)
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】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
  
|  得分: 满分:2分 20、【单选题】 
如果传播行为是 Propagation.REQUIRES_NEW,哪个说法最能描述传播行为?(选择一项)
 A.
如果存在活动事务,则在嵌套事务中运行;如果没有活动事务,则抛出一个异常
 B.
如果已经存在事务,则支持该事务;如果没有活动事务,则抛出一个异常
 C.
总是启动新事务;如果已经存在活动事务,则暂停该事务
 D.
总是启动新事务;如果已经存在活动事务,则抛出一个异常
【正确答案】C
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 21、【单选题】 
 以下代码显示了一个将用于创建DataService bean的Java配置类。对该类还需要做哪些工作?(选择一项)
public class DataConfig{
 public DataSource dataSource(){
    return new DataSource();
  }
}
 A.
该方法应该用@Autowired进行注解,该类应该用@ComponentScan进行注解
 B.
该方法应该用@Bean进行注解,该类应该用@Configuration进行注解
 C.
该类应该用@Bean进行注解,该方法应该用@Configuration进行注解
 D.
该类应该用@Autowired进行注解,该方法应该用@ComponentScan进行注解
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】通过@Configuration注解类和@Bean注解方法是显示的创建bean通过@ComponentScan扫描@Component等组件注解类,可以隐式创建bean
  
|  得分: 满分:2分 22、【单选题】 
考虑下图中的事务性服务层类。你使用的是 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
【答题时间】2023-05-15 08:26:24
【答案解析】C:Spring 管理事务是基于接口代理的,如果是内部调用,则不重新经过代理对象,则无事务的特性,即在“内部调用” 时,被调用的方法上的@Transactional 是无效的,注解参数更加没有任何意义。
  
|  得分: 满分:2分 23、【单选题】 
当在一个类上使用@SpringBootApplication时,以下哪些说法是正确的?(选择一项)
 A.
它使Spring Boot启用自动配置
 B.
该类中不能有@Bean方法
 C.
该类不是一个配置类,@Bean注解的方法不能注入
 D.
它使SpringBoot项目可以一键生成代码
【正确答案】A
【答题时间】2023-05-15 08:26:24
【答案解析】除基本注解外,@SpringBootApplication的元注解有@SpringBootConfiguration和@ComponentScan以及@EnableAutoConfiguration@SpringBootConfiguration的元注解中包含一个@Configuration@ComponentScan的值会对该类所在的包进行扫描@EnableAutoConfiguration会启动自动配置
  
|  得分: 满分:2分 24、【单选题】 
下列关于创建 bean 的说法,哪个说法是正确的(选择一项)
 A.
当搜索依赖项时,@Autowired 会寻找个名称匹配的 bean。如果不成功,就会退回到基于类型的匹配
 B.
在创建时间用 Spring 代理替换@Configuration 类,以实现 singleton 作用域
 C.
当依赖项有两个类型匹配的候选者时,@Autowired 会随机选择一个
 D.
在@Configuration 类中,@Bean 方法必须不接受任何参数
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】A:@Autowired 的机制是先按类型查找匹配类型的对象的数量,仅当数量>1 时会尝试按名称匹配,其顺序是先类型再名 称; C:不可能随机选择; D:@Bean 方法的参数可以是任何能由 Spring 注入的值,即 Spring 容器中的对象或对象的属性值。
  
|  得分: 满分:2分 25、【单选题】 
Spring Framework 如何支持程序化事务管理?
 A.
通过提供一个可以在 ApplicationContext 中声明为 bean 的 TransactionTemplate 类
 B.
Spring Framework 仅通过自动配置 UserTransaction 类来支持 JTA 环境中的程序化事务管理
 C.
Spring Framework 不支持程序化事务管理,仅支持基于注解的事务管理
 D.
通过提供一个可以 @Autowired 到类中的自动配置的 TransactionTemplate实例
【正确答案】D
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 26、【单选题】 
当多个bean与依赖项的类型相匹配时,以下是可能的自动布线机制。其中哪个是正确的?(选择一项)
 A.
当多个bean满足时会在启动时直接报异常
 B.
使用@Qualifier和@Autowired注解以及setter方法
 C.
在字段@Autowired注解就可以,不需要其他注解
 D.
只在字段上使用@Qualifier注解不需要其他注解
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】自动布线:Autowired,即自动装配。本题考察如果有多个类型相同的Bean时,如何实现自动装配。除了构造方法以外,无论是通过Setter还是字段注入,都必须使用@Autowired注解,当存在多个类型相同的Bean时,还必须配合@Qualifier一起使用,即在同一处同时使用这2个注解
  
|  得分: 满分:2分 27、【单选题】 
你希望应用一个 aspect 来阻止异常在堆栈中传播,并返回一个错误值。你会使用哪种类型的 advice?(选择一项)
 A.
"After Returning"
 B.
"After Throwing"
 C.
"After"
 D.
"Around"
 E.
"Before"
【正确答案】D
【答题时间】2023-05-15 08:26:24
【答案解析】After Throwing:Only invokes advice if the right exception type is thrown, The @AfterThrowing advice will not stop the exception from propagation, However it can throw a different type of exception. If you wish to stop the exception from propagating any further, you can use an @Around advice.
  
|  得分: 满分:2分 28、【单选题】 
在ApplicationContext中定义使用singleton作用域的两个MyBean类型的bean,id为"myBean"1和"myBean2"。getBean(String id)方法对每个bean被调用一次。关于返回的两个引用,哪个说法是正确的?(选择一项)
 A.
两个引用指向同一类型的不同实例
 B.
两个引用指向同一个bean实例
 C.
当ApplicationContext被初始化时,将抛出RuntimeException
 D.
其中一个引用将是null
【正确答案】A
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 29、【单选题】 
Spring RestTemplate 类
 A.
只能用于与使用 Spring MVC 或 WebFlux 实现的应用进行通信
 B.
可以用于发送和接收使用 Spring 的 RequestEntity 和 ResponseEntity 定义的 HTTP 数据
 C.
可用于非阻断 I/O、流应用或处理响应式流背压
 D.
需要在使用它之前显式定义 HttpMessageConverters
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 30、【单选题】 
以下哪种 Spring Boot Starter 可用于 Spring REST 应用?
 A.
spring-boot-starter-rest
 B.
spring-boot-starter-web
 C.
spring-boot-starter-web-mvc
 D.
spring-boot-starter-rest-mvc
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 31、【单选题】 
以下哪个说法最能定义"pointcut"?(选择一项)
 A.
选择一个或多个 join point 的表达式
 B.
囊括 advice 的模块
 C.
程序执行中的点,如方法调用或字段分配
 D.
在每个选定的 join point 执行的代码
【正确答案】A
【答题时间】2023-05-15 08:26:24
【答案解析】An expression that selects one or more Join Points
  
|  得分: 满分:2分 32、【单选题】 
已给出下面的 pointcut,下列哪些关于 Spring AOP 的说法是正确的?(选择一项)
execution(@com.mycomp.MyCustomAnnotation void *(..))
1. Spring 不支持其 pointcut 表达式语言内部的注解
2. 这将选择代表被@com.mycomp.MyCustomAnnotation 注解的 void 方法的 join point
3. 这将选择代表只位于根包中的类的方法的 join point
4. 这个 pointcut 将永远无法选择任何 join point
 A.
说法 2 和 3 是正确的
 B.
说法 2 是正确的
 C.
都是错误的
 D.
说法 4 是正确的
 E.
说法 1 是正确的
【正确答案】B
【答题时间】2023-05-15 08:26:24
【答案解析】说法1:About Pointcuts: Spring AOP uses AspectJ’s pointcut expression language, Spring AOP supports a practical subset.说法3:在execution表达式中,如果是 *(..) 格式,可以通配所有包(含各级子包),如果指定了包名,仅用于选择指定的包,并不包含子包,如果指定包名且需要通配子级包,需要在包名处使用 .. 进行通配。
  
|  得分: 满分:2分 33、【单选题】 
如果传播行为是 Propagation.REQUIRED,哪个说法最能描述传播行为:(选择一项)
 A.
如果存在活动事务,则在嵌套事务中执行;如果没有事务,则启动一个新的事务
 B.
如果已经存在事务,则在该事务中执行;如果没有事务,则在没有事务上下文的情况下执行
 C.
如果已经存在事务,则在该事务中执行;如果没有事务,则启动一个新的事务
 D.
如果已经存在事务,则在该事务中执行;如果没有活动事务,则抛出一个异常
【正确答案】C
【答题时间】2023-05-15 08:26:24
【答案解析】 
  
|  得分: 满分:2分 34、【单选题】 
在应用程序的初始化过程中,这些事件将以什么顺序发生?请选择最佳答案。(选择一项)
1. Setter依赖注入
2. Bean构造函数
3. 调用BeanFactoryPostProcessors
4. Bean准备好随时可用
 A.
2,1,3,4
 B.
2,1,4,3
 C.
3,2,1,4
 D.
3,1,2,4
【正确答案】C
【答题时间】2023-05-15 08:26:24
【答案解析】Bean初始化的流程会先执行BFPP,然后遍历所有Bean,查找和创建依赖,之后进行实例化即构造函数注入,setter注入,接下来进行初始化的流程,在流程里面有BPP,执行后即Bean准备好,随时可用BFPP和BPP两个都可以自定义实现,其中PropertySourcesPlaceholderConfigurer是典型的BFPP的实现,用于读取Environment中的属性值
  
|  得分: 满分:2分 35、【单选题】 
考虑下面的 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
【答题时间】2023-05-15 08:26:24
【答案解析】默认的 Bean id/name 是@Bean 方法名称,也可通过@Bean 注解的方法
  
|  得分: 满分:2分 36、【单选题】 
关于@TestPropertySource注解,以下哪项陈述是正确的?
 A.
Java系统属性的优先级高于从@TestProperySo

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值