Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > spring factory анотациями


Автор: polosatij 20.7.2009, 13:10
никак не могу найти или подключить фактори в spring 3 через анотации. есть следующий код:

Код

@Controller
public class А {

    @Autowired
    Repository repository;
}


Код

@Component
@Scope("prototype") // TODO: почему-то не работает?!
public class Repository { }


инстанция Repository должена быть создана через фактори, каждый раз разная инстанция.

предпологаю следующее:  класс А - signleton и создаётся только один раз и конечно же Repository будет создан тоже всего один раз. где и как прописать анотациями метод и саму архитектуру по созданию фактори паттерна?


Автор: polosatij 22.7.2009, 23:16

up

странна.. все програмят на Spring-е, но никто не в курсе, как анотировать фактори  smile

Автор: MisterCleric 23.7.2009, 10:36
Ну раз просишь, то вот пример из документации по Sring3
4.12.6 Defining bean metadata within components
Код

@Component
public class FactoryMethodComponent {

 private static int i;

 @Bean @Qualifier("public")
 public TestBean publicInstance() { 
  return new TestBean("publicInstance");
 }

 // use of a custom qualifier and autowiring of method parameters

 @Bean @BeanAge(1)
 protected TestBean protectedInstance(@Qualifier("public") TestBean spouse, @Value("#{privateInstance.age}") String country) {
  TestBean tb = new TestBean("protectedInstance", 1);
  tb.setSpouse(tb);
  tb.setCountry(country);
  return tb;
 }

 @Bean @Scope(StandardScopes.PROTOTYPE)
 private TestBean privateInstance() {
  return new TestBean("privateInstance", i++);
 }

 @Bean @Scope(value = StandardScopes.SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
 public TestBean requestScopedInstance() {
  return new TestBean("requestScopedInstance", 3);
 }
}


Думаю оно.
А вообще хоть все и пишут на Spring, но используют более старую версию, так как проекты уже написаны, а прикручивать новую версию выходит накладно.
Плюс Sring3 еще не вышел, что бы серъезно им заниматься...

Автор: polosatij 23.7.2009, 23:53
Цитата(MisterCleric @  23.7.2009,  09:36 Найти цитируемый пост)
Думаю оно.


нетю.. удалили.. вот линк:

http://forum.springsource.org/showthread.php?t=73374

нет других способов? smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)