Spring认证的第一次模拟考试

 

2、【单选题】
关于以下代码,哪个说法是正确的?(选择一项)(选择一项)
  ClientService service = applicationContext.getBean(ClientService.class);
A.这个语法是无效的,因为 getBean()方法调用的结果应该显式地投向 ClientService 
B.这个语法是无效的,因为 bean id 必须被指定为方法参数 
C.它返回名为"ClientService"的 bean 
D.它返回的是一个类型为 ClientService 的 bean(不管它的 id 或名称是什么) 
【正确答案】D
【答题时间】2022-01-09 03:51:51
【答案解析】以上代码是从 Spring 容器中获取对象的代码,当使用类作为 getBean()参数时,会尝试从 Spring 容器中获取匹配类型 的对象,原题和各选项中没有说明其它前提条件,则视为获取成功,返回匹配类型的对象,对象的 Bean id/name 是默认 名,即将类名的首字母改为小写的名称(如果类/接口名的前 2 个字母均是大写的,则 Bean id/name 与类/接口名完全相 同)。 源码中的方法签名: public T getBean(Class requiredType) throws

3、【单选题】
使用下面的图片,考虑遗留类。如何从这个遗留类创建 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
【答题时间】2022-01-09 03:51:51
【答案解析】注意:本题题干中的“遗留类”指的就是代码中的 LagacySingleton 类,类名中的 Lagacy 的译义中有“遗留”的意思。 A:Spring 能自动调用的方法只有被 Spring 上下文加载的类中的@Bean 方法,以上代码中,LagacySingleton 不是被 Spring 上下文加载的类,所以不可能自动调用; C:自动布线(自动装配)是用于为属性注入值的; D:Spring 是基于反射的,无视访问权限。

 

 

8、【单选题】
已给出下面的 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
【答题时间】2022-01-09 03:51:51
【答案解析】说法1:About Pointcuts: Spring AOP uses AspectJ’s pointcut expression language, Spring AOP supports a practical subset.说法3:在execution表达式中,如果是 *(..) 格式,可以通配所有包(含各级子包),如果指定了包名,仅用于选择指定的包,并不包含子包,如果指定包名且需要通配子级包,需要在包名处使用 .. 进行通配。

 

10、【单选题】
考虑下面的配置示例。以下哪个说法是正确的?(选择一项)
@Configuration
public class ApplicationConfig {
@Bean
public RewardNetwork rewardNetwork() {
return new RewardNetworkImpl(accountRepository());
}
@Bean
public AccountRepository accountRepository() {
return new JdbcAccountRepository();
}
}
A.这种配置是正确的 
B.这个配置是无效的,因为第一个 bean 应该有一个 id,可以使用@Bean("rewardNetwork")来设置它 
C.这个配置是无效的,因为第二个 bean 应该有一个 id,可以使用@Bean("accountRepository")来设置它 
D.这个配置是无效的,因为两个 bean 都应该有一个用@Bean 指定的 id 
【正确答案】A
【答题时间】2022-01-09 03:51:51
【答案解析】Spring 并不要求为每个 Bean 显式的指定 id/name,即使没有显式的指定,Spring 也会自动为 Bean 设置 id/name。

 

12、【单选题】
如果你用@Component 来注解一个类,你应该做以下哪项才能让 Spring 自动检测到注解的类并将其加载为 bean?(选择一项)
A.确保为该类指定一个有效的@Scope 
B.确保在 Java 配置中指定一个有效的@ComponentScan 注解 
C.确保在@Component 注解中指定一个有效的 bean 名称 
D.确保为类指定一个有效的@Bean 
【正确答案】B
【答题时间】2022-01-09 03:51:51
【答案解析】A:@Scope 用于指定作用域; C:Spring 管理 Bean 可以生成默认的名称,不一定需要显式的指定名称ÿ

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值