@Lookup не работает - выдает исключение нулевого указателя - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь проверить наличие бобов, прототип, внедренный в синглтон боб. Когда я использую аннотацию @Lookup, она генерирует исключение нулевого указателя.

thows нулевой указатель в классе singletonBean ... На самом деле возвращаемое значение null должно быть переопределено cglib и должно возвращать bean-объект с прототипом вправо ...

AppConfiguration.java

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

import Bean.ProtoBean;
import Bean.SingletonBean;

@Configuration
 public class AppConfiguration {

@Bean
@Scope("prototype")
public ProtoBean protoBean() {
    return new ProtoBean();
}

@Bean
@Scope("singleton")
public SingletonBean singletonBean() {
    return new SingletonBean();
}

}

SingletonBean.java

@Component
public class SingletonBean {

public SingletonBean() {
    System.out.println("SingletonBean");
}

public ProtoBean fromProto() {
    ProtoBean protoBean = getProtoBean();
//throws nullpointer here
    System.out.println("beans is here: "+protoBean.hashCode());
    return protoBean;
}

@Lookup
public ProtoBean getProtoBean() {
    return null;
}

}

App.java

public class App 
{
 public static void main( String[] args )
{
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfiguration.class);
    SingletonBean sb = ctx.getBean(SingletonBean.class);
    ProtoBean pb = sb.fromProto();

    SingletonBean sb1 = ctx.getBean(SingletonBean.class);
    ProtoBean pb1 = sb1.fromProto();

    if(pb.equals(pb1)) {
        System.out.println("Equal Proto");
    } else {
        System.out.println("Unequal Proto");
    }

    ctx.close();


}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...