Результаты прохождения теста Основы Spring Framework пользователем Serjkee

Результат прохождения теста "Основы Spring Framework" - Не пройден

+19

  • Кто проходил: Serjkee
  • Дата прохождения: 12.04.2019
Основываясь на конфигурации бина ниже, выберете верные утверждения
<bean class="com.spring.service.BankServiceImpl" 
     p:bankName="NationalBank"> 
</bean> 
Ваши ответы
Должно быть объявлено p-namespace.
Параметр NationalBank является строкой.
Объяснение:

1) Чтобы установить свойство бина с р: p:propertyName=propertyValue, вы должны объявить в конфигурационном файле XML p-namespace:
http://www.springframework.org/schema/p.
2) Бин может анонимным, поэтому id не обязателен.
3) Для ссылки на другой бин нужно использовать синтаксис p:propertyName-ref=propertyValue.
4) Поскольку это не ссылка на другой бин, то это всего лишь строка.

Какие виды injection поддерживаются в Spring?
Ваши ответы
interface
Может ли следующий бин быть инстанциирован с помощью BeanFactory:
<bean id="anyBean" class="net.proghub.Example" abstract="true"> 
</bean> 
Ваши ответы
Нет
Объяснение:

В Spring нельзя инстанциировать абстрактные сущности.

В файле applicationContext.xml содержится следущее объявление:
<bean id="sample" class="com.springtest.Sample"> 
 
Какие интерфейсы предоставляют возможность получить экземпляр класса Sample по id?
Ваши ответы
ApplicationContext
BeanFactory
Что произойдет при выполнении данного кода?
public class Spell { 
   private Krible krible; 
   private Krable krable; 
   private Bums bums; 
 
   public Spell(Bums bums, Krable krable) { this.bums = bums; this.krable = krable; } 
 
   public void setKrible(Krible krible) { this.krible = krible; } 
   public void setKrable(Krable krable) { this.krable = krable; } 
   public void setBums(Bums bums) { this.bums = bums; } 
} 
 
Конфигурация (java классы Krible, Krable и Bums существуют):
 
<bean id="spell" class="com.autowire.Spell" autowire="autodetect"/> 
<bean name="krible" class="com.autowire.Krible"/> 
<bean id="krable" class="com.autowire.Krable"/> 
<bean id="bums" class="com.autowire.Bums"/>
 
Код:
 
Spell spell = (Spell) ctx.getBean("spell");? 
Ваши ответы
Все поля spell будут проинициализированы
Объяснение:

autodetect сначала выполняет поиск соответствий по конструктору, а потом по типу. В данном случае будет использован конструктор Spell(Bums bums, Krable krable) и значение поля Krible не будет установлено.

Какое имя у бина реализованного в данном классе?
@Configuration 
public class ApplicationConfig { 
 
   @Autowired 
   private DataSource dataSource; 
 
   @Bean 
   ClientRepository clientRepository() { 
       ClientRepository accountRepository = new JpaClientRepository(); 
       accountRepository.setDataSource(dataSource); 
       return accountRepository; 
   } 
} 
Ваши ответы
accountRepository
Объяснение:

Аннотация @Bean определяет бин с id "clientRepository" по названию метода. К примеру: <bean id=port class="java.lang.Integer"> <br>   <constructor-arg type="int" value="8080"/> <br></bean>

На что можно заменить REPLACEME, чтобы скрыть настоящее значение name?
package com.springtest.Sample 
public class Sample { 
   private String name; 
   public String getName() { return name; } 
   public void setName(String name) { this.name = name; } 
}
<beans ... > 
    <bean name="sample" class="com.springtest.Sample"> 
         <lookup-method REPLACEME /> 
         <property name="name" value="default" /> 
    </bean> 
</beans>
Ваши ответы
name="getName" value="mock"
Объяснение:

lookup-method имее два параметра - name (имя переопределяемого метода) и bean (имя бина, которым будет замещено оригинальное значение). т.к. в приведенном xml нет описания bean-а с именем "mock" ни один из указанных вариантов не является верным

Какой тип Advice не входит в Spring Framework?
Ваши ответы
After-throwing
Объяснение:

Arround advice в Spring представлен интерфейсом org.aopalliance.intercept.MethodInterceptor проекта AOP Alliance.