|
|
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
Доброе время суток! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 11:03 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
bob8Доброе время суток! Такой вот вопросик: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 11:06 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
bob8Доброе время суток! Привет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 11:06 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
bob8Такой вот вопросик: Добро пожаловать в наш чатик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 11:07 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
У меня есть фабрика public class TestFactory { private Map<Type, Provider> providers; public Provider getStorageProvider(Type providerType) { return providers.get(storageProviderType); } public void setProviders(Map<Type, Provider> providers) { this.providers = providers; } } которая будет поставлять имплементации: interface Provider { void method(); } @Service public class ProviderA implements Provider { @Override public void method() { System.out.println("ProviderA"); } } @Service public class ProviderB implements Provider { @Override public void method() { System.out.println("ProviderA"); } } как описать конфиг этой фабрики?: @Configuration public class MyConfig { @Bean public Provider providerA(){ return new ProviderA();} @Bean public Provider providerB(){ return new ProviderA();} @Bean public TestFactory testFactory(){ TestFactory factory = new TestFactory(); Map<Type, Provider> providers = new HashMap<>(); providers.put(Type.A, ?????); providers.put(Type.B, ?????); factory.set(providers); return factory; } } Type - это enum; Вопрос как все это сконфигурировать???:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 11:33 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
bob8У меня есть фабрика ... Вопрос как все это сконфигурировать???:) Я не понял зачем вы делаете, но вы явно делаете не то. Собственная реализация паттерна фабрика, для приложений на Spring не обычно не нужна. Фабрикой выступает как раз сам Spring. А так в методе testFactory просто вызывать соответствующие "бины" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 11:55 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
mad_nazgulbob8У меня есть фабрика ... Вопрос как все это сконфигурировать???:) Я не понял зачем вы делаете, но вы явно делаете не то. Собственная реализация паттерна фабрика, для приложений на Spring не обычно не нужна. Фабрикой выступает как раз сам Spring. А так в методе testFactory просто вызывать соответствующие "бины" я хочу получить след: @Controller public class MyController{ @Autowired private TestFactory testFactory; pablic void method(){ Provider provider = testFactory.get(Type.A) фабрика должна вернуть нужный экземпляр } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:11 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
Blazkowiczbob8, https://www.google.com/search?q=spring bean qualifier вы предлагаете так реализовать:? @Controller public class MyController{ @Autowired @Qualifier("providerA") public Provider providerA; @Autowired @Qualifier("providerB") public Provider providerA; } если да - то я хотел работать через свою фабрику @Autowired private TestFactory testFactory; и фабрика возвращала мне нужные экземпляр Provider, по значению enuma Provider provider = testFactory.get(Type.A); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:37 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
bob8я хочу получить след: @Controller public class MyController{ @Autowired private TestFactory testFactory; pablic void method(){ Provider provider = testFactory.get(Type.A) фабрика должна вернуть нужный экземпляр } } У вас уже все есть просто сделайте так. :-) Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 13:17 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
mad_nazgulbob8я хочу получить след: @Controller public class MyController{ @Autowired private TestFactory testFactory; pablic void method(){ Provider provider = testFactory.get(Type.A) фабрика должна вернуть нужный экземпляр } } У вас уже все есть просто сделайте так. :-) Код: java 1. 2. 3. 4. 5. 6. 7. так былобы отлично, но получаю NPE :) пока реализовал все через spring ServiceLocatorFactoryBean @Bean(name = "providerA" ) public Provider providerA(){ return new ProviderA();} @Bean public ServiceLocatorFactoryBean myFactoryServiceLocatorFactoryBean() { ServiceLocatorFactoryBean bean = new ServiceLocatorFactoryBean(); bean.setServiceLocatorInterface(TestFactory.class); return bean; } @Bean public StorageFactory storageFactory() { return (TestFactory) myFactoryServiceLocatorFactoryBean().getObject(); } вызов происходит @Autowired private TestFactory testFactory; testFactory.getProvider("providerA"); где interface TestFactory{ public Provider getProvider(String providerType); } а мне хотел делать через enum providerType ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 14:05 |
|
||
|
spring Factory config
|
|||
|---|---|---|---|
|
#18+
bob8так былобы отлично, но получаю NPE :) Х.З. не силен в Java Spring config. Обычно пользуюсь xml-config. Там просто объявляешь Bean, а потом на него можно делать ref. По идее для Java Spring config должно быть так же. IMHO я бы вообще то бы создал для атрибуты для ProviderA И ProviderB и инициализировал их в @PostConstruct А в getXXX их возвращал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 15:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38836875&tid=2126059]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
276ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 538ms |

| 0 / 0 |
