java – Intellij Idea – 无法自动装配.找不到’ApplicationRepository’类型的bean. less …(Ctrl F1)检查bean类中的自动装配问题

前端之家收集整理的这篇文章主要介绍了java – Intellij Idea – 无法自动装配.找不到’ApplicationRepository’类型的bean. less …(Ctrl F1)检查bean类中的自动装配问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 Java新手.

我正在制作这个tutorial(Spring MVC Hibernate Tomcat)

到目前为止,一切都很好.当我尝试创建ApplicationController时,我无法自动装配ApplicationRepository.

部署应用程序时,我收到此错误消息和404错误代码

  1. Could not autowire. No beans of 'ApplicationRepository' type found. less...
  2. (Ctrl+F1)
  3. Checks autowiring problems in a bean class.

好的谈话很便宜.

这里是回购(github!):https://github.com/maciejkowalski/sample-spring-app

Tomcat stacktrace:https://gist.github.com/maciejkowalski/c7512d82feb75fcebd5f

这是代码

根/ SRC /主/爪哇/ wzpweb /

  1. package wzpweb;
  2.  
  3. import javax.persistence.*;
  4.  
  5. @Entity(name = "applications")
  6. public class Application {
  7. @Id
  8. @GeneratedValue(strategy = GenerationType.AUTO)
  9. private Long id;
  10.  
  11. @Basic
  12. private String name;
  13.  
  14. @Basic
  15. private String ip;
  16.  
  17. @Basic
  18. private Boolean alive;
  19.  
  20. @Basic
  21. private Integer port;
  22.  
  23. public Long getId() {
  24. return id;
  25. }
  26.  
  27. public void setId(Long id) {
  28. this.id = id;
  29. }
  30.  
  31. public String getName() {
  32. return name;
  33. }
  34.  
  35. public void setName(String name) {
  36. this.name = name;
  37. }
  38.  
  39. public String getIp() {
  40. return ip;
  41. }
  42.  
  43. public void setIp(String ip) {
  44. this.ip = ip;
  45. }
  46.  
  47. public Boolean getAlive() {
  48. return alive;
  49. }
  50.  
  51. public void setAlive(Boolean alive) {
  52. this.alive = alive;
  53. }
  54.  
  55. public Integer getPort() {
  56. return port;
  57. }
  58.  
  59. public void setPort(Integer port) {
  60. this.port = port;
  61. }
  62.  
  63. }
  1. package wzpweb;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Controller;
  5. import org.springframework.ui.ModelMap;
  6. import org.springframework.validation.BindingResult;
  7. import org.springframework.web.bind.annotation.ModelAttribute;
  8. import org.springframework.web.bind.annotation.PathVariable;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RequestMethod;
  11.  
  12. @Controller
  13. public class ApplicationController {
  14.  
  15. @Autowired
  16. private ApplicationRepository applicationRepository;
  17. // THIS IS NOT WORKING !! ACHTUNG!
  18.  
  19. @RequestMapping(value = "/",method = RequestMethod.GET)
  20. public String listApplications(ModelMap model) {
  21. model.addAttribute("application",new Application());
  22. model.addAttribute("applications",applicationRepository.findAll());
  23. return "users";
  24. }
  25.  
  26. }
  1. package wzpweb;
  2.  
  3. import org.springframework.data.jpa.repository.JpaRepository;
  4.  
  5. public interface ApplicationRepository extends JpaRepository<Application,Long> {
  6. }

根/ SRC /主/ web应用/ WEB-INF / MVC-调度-servlet.xml中

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:tx="http://www.springframework.org/schema/tx"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
  8.  
  9. <context:component-scan base-package="wzpweb"/>
  10.  
  11. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  12. <property name="prefix" value="/WEB-INF/pages/"/>
  13. <property name="suffix" value=".jsp"/>
  14. </bean>
  15.  
  16. <jpa:repositories base-package="wzpweb"/>
  17.  
  18. <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerfactorybean">
  19. <property name="persistenceUnitName" value="defaultPersistenceUnit"/>
  20. </bean>
  21.  
  22. <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
  23. <property name="entityManagerFactory" ref="entityManagerFactory" />
  24. </bean>
  25.  
  26. <tx:annotation-driven transaction-manager="transactionManager"/>
  27.  
  28. </beans>

根/ SRC /主/ web应用/ WEB-INF / web.xml中

  1. <web-app version="2.4"
  2. xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  4. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  5.  
  6. <display-name>Spring MVC Application</display-name>
  7.  
  8. <servlet>
  9. <servlet-name>mvc-dispatcher</servlet-name>
  10. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  11. <load-on-startup>1</load-on-startup>
  12. </servlet>
  13.  
  14. <servlet-mapping>
  15. <servlet-name>mvc-dispatcher</servlet-name>
  16. <url-pattern>/</url-pattern>
  17. </servlet-mapping>
  18. </web-app>

根/ SRC /主/资源/ Meta-INF / persistance.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  3. <persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
  4. <provider>org.hibernate.ejb.HibernatePersistence</provider>
  5. <properties>
  6. <property name="hibernate.dialect" value="org.hibernate.dialect.PostgresqlDialect"/>
  7. <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/sample"/>
  8. <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
  9. <property name="hibernate.connection.username" value="postgres" />
  10. <property name="hibernate.connection.password" value="123" />
  11. <property name="hibernate.show_sql" value="true"/>
  12. <property name="hibernate.format_sql" value="true"/>
  13. <property name="hibernate.hbm2ddl.auto" value="create-drop" />
  14. </properties>
  15. </persistence-unit>
  16. </persistence>

根/ pom.xml的

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.springapp</groupId>
  5. <artifactId>WZP_aplikacja_web</artifactId>
  6. <packaging>war</packaging>
  7. <version>1.0-SNAPSHOT</version>
  8. <name>WZP_aplikacja_web</name>
  9.  
  10. <properties>
  11. <spring.version>3.2.2.RELEASE</spring.version>
  12. </properties>
  13.  
  14. <dependencies>
  15. <dependency>
  16. <groupId>org.springframework</groupId>
  17. <artifactId>spring-core</artifactId>
  18. <version>${spring.version}</version>
  19. </dependency>
  20.  
  21. <dependency>
  22. <groupId>org.springframework</groupId>
  23. <artifactId>spring-web</artifactId>
  24. <version>${spring.version}</version>
  25. </dependency>
  26.  
  27. <dependency>
  28. <groupId>javax.servlet</groupId>
  29. <artifactId>servlet-api</artifactId>
  30. <version>3.0</version>
  31. </dependency>
  32.  
  33. <dependency>
  34. <groupId>javax.servlet.jsp</groupId>
  35. <artifactId>jsp-api</artifactId>
  36. <version>2.1</version>
  37. <scope>provided</scope>
  38. </dependency>
  39.  
  40. <dependency>
  41. <groupId>org.springframework</groupId>
  42. <artifactId>spring-webmvc</artifactId>
  43. <version>${spring.version}</version>
  44. </dependency>
  45.  
  46. <dependency>
  47. <groupId>org.springframework</groupId>
  48. <artifactId>spring-test</artifactId>
  49. <version>${spring.version}</version>
  50. <scope>test</scope>
  51. </dependency>
  52.  
  53. <dependency>
  54. <groupId>junit</groupId>
  55. <artifactId>junit</artifactId>
  56. <version>4.8.2</version>
  57. <scope>test</scope>
  58. </dependency>
  59.  
  60. <dependency>
  61. <groupId>jstl</groupId>
  62. <artifactId>jstl</artifactId>
  63. <version>1.2</version>
  64. </dependency>
  65.  
  66. <dependency>
  67. <groupId>org.springframework.data</groupId>
  68. <artifactId>spring-data-jpa</artifactId>
  69. <version>1.2.0.RELEASE</version>
  70. </dependency>
  71.  
  72. <dependency>
  73. <groupId>org.hibernate.javax.persistence</groupId>
  74. <artifactId>hibernate-jpa-2.0-api</artifactId>
  75. <version>1.0.1.Final</version>
  76. </dependency>
  77.  
  78.  
  79. <dependency>
  80. <groupId>org.hibernate</groupId>
  81. <artifactId>hibernate-entitymanager</artifactId>
  82. <version>4.2.0.Final</version>
  83. </dependency>
  84.  
  85.  
  86. <dependency>
  87. <groupId>postgresql</groupId>
  88. <artifactId>postgresql</artifactId>
  89. <version>9.1-901.jdbc4</version>
  90. </dependency>
  91. </dependencies>
  92.  
  93. <build>
  94. <finalName>WZP_aplikacja_web</finalName>
  95. <plugins>
  96. <plugin>
  97. <artifactId>maven-compiler-plugin</artifactId>
  98. <configuration>
  99. <source>1.7</source>
  100. <target>1.7</target>
  101. </configuration>
  102. </plugin>
  103. <plugin>
  104. <artifactId>maven-surefire-plugin</artifactId>
  105. <configuration>
  106. <includes>
  107. <include>**/*Tests.java</include>
  108. </includes>
  109. </configuration>
  110. </plugin>
  111. </plugins>
  112. </build>
  113. </project>

编辑#1

我编辑了web.xml并添加代码

  1. <web-app version="2.4"
  2. xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  4. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  5.  
  6. <display-name>Spring MVC Application</display-name>
  7.  
  8. <servlet>
  9. <servlet-name>mvc-dispatcher</servlet-name>
  10. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  11. <load-on-startup>1</load-on-startup>
  12. </servlet>
  13.  
  14. <servlet-mapping>
  15. <servlet-name>mvc-dispatcher</servlet-name>
  16. <url-pattern>/</url-pattern>
  17. </servlet-mapping>
  18.  
  19. <listener>
  20. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  21. </listener>
  22. </web-app>

但是现在我得到了Element listener-class,不允许她来自Intellij IDEA.

我的应用程序甚至没有部署.

编辑#2

问题仍然存在.

我将persistance.xml重命名为persistence.xml.

重新启动Intellij的想法,仍然收到此错误.

也许这是一个错误

我可能会投降这个春天的东西,它超出了我……

解决方法

我按照相同的教程进行了相同的代码检查警告(即使应用程序工作正常,IDE也在抱怨).为了解决这个问题,我将@Repository添加到了我的JpaRepository:

对于你的例子:

  1. package wzpweb;
  2.  
  3. import org.springframework.data.jpa.repository.JpaRepository;
  4.  
  5. @Repository
  6. public interface ApplicationRepository extends JpaRepository<Application,Long> {
  7. }

猜你在找的IDEA相关文章