2013-07-10 3 views
3

Я могу создать bean-компонент с явным методом фабрики фасоли.Как автоуборочный фасоль весеннего класса

package org.package; 

import org.springframework.security.web.PortResolver; 
import org.springframework.security.web.PortResolverImpl; 


@Configuration 
public Configuration { 

    @Bean 
     public PortResolver portResolver(){ 
      return new PortResolverImpl(); 
     } 

} 

Моей целью является избежать метода фабрики.

+1

Аннотировать класс «PortResolveImpl» с помощью '@ Component' и создать свой пакет' @ Configuration' '@ ComponentScan'. –

+0

@SotiriosDelimanolis Вы должны отправить это как ответ. –

+0

Как вы заметили эту классную форму весенней библиотеки. Я не уверен в @Component. Не могли бы вы объяснить это? – fashuser

ответ

1

Если вы не хотите фабричный метод, пусть Spring создаст экземпляр вашего класса для вас, аннотируя ваш класс @Component и сделайте свой @Configuration класс @ComponentScan его пакетом.

Когда Spring сканирует этот пакет, он найдет ваш класс, использует его конструктор по умолчанию (или конструктор, аннотированный с помощью @Inject или @Autowired), и используйте его для создания экземпляра вашего класса. Затем Spring добавит этот экземпляр в свой контекст.

Потому что PortResolveImpl не находится под вашим контролем, вам необходимо использовать заводской метод @Bean.

+0

Как вы указали, это не пользовательский класс этого класса из Spring lib и не является компонентом. – user1459144

+0

@ user1459144 Для этого нет никакой работы. У вас будет фабричный метод '@ Bean' или какой-либо другой процесс (слушатель), чтобы добавить его в ваш контекст. Невозможно сделать это автоматически без '@ Component' –

Смежные вопросы