Ecripseを使ってSpring Bootプログラミング入門という参考書をすすめているのですが、
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloController': Injection of autowired dependencies failed;nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.yamada.springboot.MyDataRepository com.yamada.springboot.HelloController.repository;No bean named 'entityManagerFactory' is defined
というエラーが出て困っています。
社内にSpringがわかる人がいないため、どなたかわかる方がいらっしゃいましたらご教授お願いいたします。念のため、コードも載せます。
ちなみに、Spring Bootのバージョンは1.3.6で文字コードはutf-8です。
java
package com.yamada.springboot; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.NotEmpty; @Entity @Table(name="mydata") public class MyData { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column @NotNull private long id; @Column(length = 50, nullable = false) @NotEmpty private String name; @Column(length = 200, nullable = true) @Email private String mail; @Column(nullable = true) @Min(0) @Max(200) private Integer age; @Column(nullable = true) private String memo; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMail() { return mail; } public void setMail(String mail) { this.mail = mail; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getMemo() { return memo; } public void setMemo(String memo) { this.memo = memo; } }
java
package com.yamada.springboot.repositories; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.yamada.springboot.MyData; @Repository public interface MyDataRepository extends JpaRepository<MyData, Long> { public MyData findById(Long name); public List<MyData> findByNameLike(String name); public List<MyData> findByIdIsNotNullOrderByIdDesc(); public List<MyData> findByAgeGreaterThan(Integer age); public List<MyData> findByAgeBetween(Integer age1, Integer age2); }
java
package com.yamada.springboot; import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import com.yamada.springboot.repositories.MyDataRepository; @Controller public class HelloController { @Autowired MyDataRepository repository; @RequestMapping(value = "/", method = RequestMethod.GET) public ModelAndView index( @ModelAttribute("formModel") MyData mydata, ModelAndView mav) { mav.setViewName("index"); mav.addObject("msg","this is sample content."); mav.addObject("formModel",mydata); Iterable<MyData> list = repository.findAll(); mav.addObject("datalist",list); return mav; } @RequestMapping(value = "/", method = RequestMethod.POST) @Transactional(readOnly=false) public ModelAndView form( @ModelAttribute("formModel") @Validated MyData mydata, BindingResult result, ModelAndView mov) { ModelAndView res = null; if (!result.hasErrors()){ repository.saveAndFlush(mydata); res = new ModelAndView("redirect:/"); } else { mov.setViewName("index"); mov.addObject("msg","sorry, error is occured..."); Iterable<MyData> list = repository.findAll(); mov.addObject("datalist",list); res = mov; } return res; } @PostConstruct public void init(){ MyData d1 = new MyData(); d1.setName("tuyano"); d1.setAge(123); d1.setMail("syoda@tuyano.com"); d1.setMemo("this is my data!"); repository.saveAndFlush(d1); MyData d2 = new MyData(); d2.setName("hanako"); d2.setAge(15); d2.setMail("hanako@flower"); d2.setMemo("my girl friend."); repository.saveAndFlush(d2); MyData d3 = new MyData(); d3.setName("sachiko"); d3.setAge(37); d3.setMail("sachico@happy"); d3.setMemo("my work friend..."); repository.saveAndFlush(d3); } @RequestMapping(value = "/edit/{id}", method = RequestMethod.GET) public ModelAndView edit(@ModelAttribute MyData mydata, @PathVariable int id,ModelAndView mav) { mav.setViewName("edit"); mav.addObject("title","edit mydata."); MyData data = repository.findById((long)id); mav.addObject("formModel",data); return mav; } @RequestMapping(value = "/edit", method = RequestMethod.POST) @Transactional(readOnly=false) public ModelAndView update(@ModelAttribute MyData mydata, ModelAndView mav) { repository.saveAndFlush(mydata); return new ModelAndView("redirect:/"); } @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) public ModelAndView delete(@PathVariable int id, ModelAndView mav) { mav.setViewName("delete"); mav.addObject("title","delete mydata."); MyData data = repository.findById((long)id); mav.addObject("formModel",data); return mav; } @RequestMapping(value = "/delete", method = RequestMethod.POST) @Transactional(readOnly=false) public ModelAndView remove(@RequestParam long id, ModelAndView mav) { repository.delete(id); return new ModelAndView("redirect:/"); } }
xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yamada.springboot</groupId> <artifactId>MyBootApp</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>MyBootApp</name> <description>Sample project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <start-class>org.springframework.boot.SpringApplication</start-class> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
以上になります。よろしくお願いします。
まだ回答がついていません
会員登録して回答してみよう