为参数创建@EnableJpaRepositories存储库的实例

时间:2016-08-11 09:34:58

标签: spring-boot spring-data-jpa

我应该传递什么作为参数来调用Access.logLastName(?)?我不清楚如何放置UserRepository实现的实例

com.company.app.persistence.test.Access

@Configuration
@EnableJpaRepositories({ "com.company.app.persistence.repository" })
public class Access {
    static void logLastName( UserRepository repository ) {
        for (User white: repository.findByLastName( "White" )) {
            log.info( white.toString());
        }
    }
}

com.company.app.persistence.repository.UserRepository

public interface UserRepository extends CrudRepository<User, Long> {

    List<User> findByLastName(String lastName);
}

参考:

@SpringBootApplication带注释的Getting Started Accessing Data with JPA类中,他们有一个像

这样的方法
@Bean
public CommandLineRunner demo(UserRepository repository) {
  return ( args ) -> {
    repository.findByLastName( "White" );
  };
}

我不清楚如何将UserRepository实现的实例作为参数传递。

1 个答案:

答案 0 :(得分:0)

来自@ dunni的评论:

  

确保com.company.app.persistence.test.Access.java是一个弹簧   豆

它有@Configuration,这使得它符合我认为的春天豆(?)

然后在我要调用logLastName()的类中,您可以简单地@Autowired界面:

class Invoker {
  @Autowired UserRepository userRepo;

  void invoke() {
    Access.logLastName( userRepo );
  }

}