Как сделать lookup-method в Spring с помощью аннотаций

Рейтинг: 0Ответов: 1Опубликовано: 04.04.2015

В Spring есть возможность объявить lookup-method. С помощью xml это настраивается следующим образом:

<bean id="simpleBean"
      class="test.spring.SimpleBean"
      scope="prototype"/>

<bean id="testLockupMethodService"
      class="test.spring.TestLockupMethodService">
    <lookup-method bean="simpleBean" name="getSimpleBean"/>
</bean>

Первый бин

package test.spring;

public class SimpleBean {

    private static int count;

    private int id;

    public SimpleBean() {
        id = count++;
    }

    @Override
    public String toString() {
        return "SimpleBean{" +
            "id=" + id +
            '}';
    }
}

Второй бин

package test.spring;

public abstract class TestLockupMethodService {

    public void doSomething() {
        getSimpleBean();
    }

    public abstract SimpleBean getSimpleBean();
}

Как можно настроит такое же с помощью аннотаций?

Ответы

▲ 2

Привет! Я так понимаю вам нужно это.

@Configuration
public class AppContex{
    @Autowired
    private SimpleBean someBean;
    @Bean
    public TestLockupMethodService testLookupMethodService(){
       return new TestLockupMethodService(){
              public SimpleBean getSimpleBean(){
                  return someBean;
              }
       }
    }
}