Как вызывать методы репозиториев Spring Framework

Поздно, но я надеюсь, что это кому-то поможет.

У меня есть JAX RS, определенный следующим образом:

@Path("/examplepath")
@RequestScoped //this make the diference
public class ExampleResource {

Затем, в моем коде, наконец, я могу ввести:

@Inject
SomeManagedBean bean;

В моем случае SomeManagedBean является компонентом ApplicationScoped.

Надеюсь, это поможет кому угодно.

1
задан Calvin Godfrey 15 January 2019 в 17:19
поделиться

2 ответа

Обращаем ваше внимание на то, что приложение Spring Boot во время запуска стремится разрешить дерево зависимостей. Это означает обнаружение и создание экземпляров Beans, которые определяет приложение, и это классы, аннотированные @Service, @Repository и т. Д.

Это означает, что вызывается конструктор по умолчанию (или помеченный @Autowire) для всех bean-компонентов, и после того, как все bean-компоненты были построены, приложение начинает работать.

Когда аннотация @Bean вступает в игру, это если у вас есть бин, который не знает значений его параметров конструктора во время компиляции (например, если вы хотите подключиться к метке времени «с начала»): тогда вы должны определить класс с аннотацией @Configuration и открывающий в нем метод @Bean, который будет возвращать ваш bean-компонент и иметь параметры, которые являются зависимостями bean-компонентов. В нем вы вызываете конструктор bean и возвращаете bean.

Теперь, если вы хотите, чтобы определенный метод некоторого класса вызывался после разрешения приложения, вы можете реализовать интерфейс CommandLineRunner или аннотировать метод с помощью @PostConstruct.

Некоторые полезные ссылки / ссылки:

  1. https://docs.spring.io/spring-javaconfig/docs/1.0.0.m3/reference/html/ creation-bean-definitions.html

  2. https://www.baeldung.com/spring-inject-prototype-bean-into-singleton [ 1115]

  3. Запуск кода после запуска Spring Boot
  4. Выполнение метода при запуске в Spring
0
ответ дан h.alex 15 January 2019 в 17:19
поделиться

При создании @Bean, добавление репозитория в параметры bean-компонента достаточно, чтобы связать репо в bean-компоненте. Это работает почти так же, как добавление аннотации @Autowired внутри класса, аннотированного как @Component, или что-то подобное.

Spring работает в основном с интерфейсом, так как это проще для проводки по сравнению с классами проводки.

0
ответ дан KaNa0011 15 January 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: