Вы можете создать bean-компонент с:
- XML-файлом конфигурации
- a Java-файлом конфигурации
- аннотацией (
@Component
, @Service
, @Controller
, @Repository
...) для класса EJB
Таким образом, вы можете легко использовать первые два метода.Например, вы можете использовать класс, аннотированный @Configuration
:
. Аннотирование класса аннотацией @ Configuration указывает, что класс будет использоваться JavaConfig как .источник определения бинов .
Вот код
@Configuration
public class MyConfig {
@Bean
public MyBean getMyBean() {
MyBean myBean = ...
return myBean;
}
}
...
@Component
public class AnotherClass {
@Autowired
private MyBean myBean;
...
}
Обновленный ответ с информацией, связанной с комментарием к вопроснику:
Если вы не можете использовать конструктор, вы можете получить istance класса, используя:
@Bean
public MyBean getMyBean() {
MyBean myBean = MyBean.getInstance();
return myBean;
}
, или вы можете использовать его непосредственно в вашем классе, не используя аннотацию @Autowired
, потому что это не Spring, который создает экземплярMyBean
экземпляр для вас, но метод getInstance
.Код будет выглядеть следующим образом:
@Component
public class AnotherClass {
// Creates (or get) the instance
private MyBean myBean = MyBean.getInstance();
...
}
ПРИМЕЧАНИЕ. Если вы являетесь поклонником TDD, первое решение генерирует код, который намного проще тестировать, чем второе, поскольку нет прямой ссылки на статический * 1043.* метод, так что легче генерировать макет.