gradleを使用してSpring Boot Data jpaアプリケーションを作成しました。プロジェクト構造は以下のようになります。
com.duregesh
--TestSpringBootDataJpaApplication.java
com.durgesh.controller
--UserController.java
com.durgesh.model
--User.java
com.durgesh.repositories
--UserJpaRepository.java
com.durgesh.services
--UserServiceImpl.java
スプリング ブートを実行しているとき、例外が発生しています。説明:
com.durgesh.services.UserServiceImpl のフィールド userJpaRepository には、見つからない「emf」という名前の Bean が必要でした。
処置: 構成で'emf'という名前のBeanを定義することを検討してください。
@SpringBootApplication
public class TestSpringBootDataJpaApplication {
public static void main(String[] args) {
SpringApplication.run(TestSpringBootDataJpaApplication.class, args);
}
-------------
public interface UserJpaRepository extends JpaRepository<User, Long> {}
-------------
@Entity
@Table(name = "USER")
public class User implements Serializable{
@Id
private Long id;
@Column(unique = true)
private String uid;
private String password;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
----------------
@Service
@EnableJpaRepositories(basePackages="com.construction.de.*", entityManagerFactoryRef="emf")
public class UserServiceImpl implements UserService {
@Autowired
private UserJpaRepository userJpaRepository;
@Override
public User add(final User user) {
return userJpaRepository.save(user);
}
@Override
public User findById(final Long id) {
final User user = userJpaRepository.findOne(id);
return user;
}
}
----
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value ="/",method = RequestMethod.POST)
public User add( @RequestBody final User user){
return userService.add(user);
}
@RequestMapping(value ="/{id}",method = RequestMethod.GET)
public User findById(@PathVariable("id") final Long id){
return userService.findById(id);
}
}