java Spring Jet Brains Idea自动连接的sessionFactory检查

时间:2014-04-04 14:25:18

标签: intellij-idea spring-annotations

Hello stackoverflow社区。我的项目Spring Maven Hib Gwt有些问题。我在Idea中启用了所有检查,并且当我在班级中以这种方式自动装配会话时

 package com.somepackage.server.service;

@Service("someService")
public class SomeClassImpl implements SomeClass

@Autowired   
private  SessionFactory sessionFactory; // checks autowiring problem in a bean clacc

我有检查问题。 "无法自动装配。没有'SessionFactory'的豆子找到类型"。当Iam添加Qualifier时没有检查消息

@Service("someService")
public class SomeClassImpl implements SomeClass

@Autowired 
@Qualifier("sessionFactory")  
private  SessionFactory sessionFactory; 

一切正常,我可以导航到家属。我相信问题在于我的sonfig文件,而不是Idea本身。这是我的applicationContext.xml

<context:component-scan base-package="com.somepackages"/>

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="/WEB-INF/db.properties"/>
</bean>

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.databaseurl}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    <property name="initialSize" value="20"/>
    <property name="validationQuery" value="SELECT 1"/>
    <property name="testWhileIdle" value="true"/>
    <property name="removeAbandoned" value="true"/>
</bean>

<bean id="sessionFactory"
      class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="packagesToScan"
              value="com.somepackages"/>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
            <prop key="hibernate.connection.useUnicode">${hibernate.connection.useUnicode}</prop>
            <prop key="hibernate.connection.characterEncoding">${hibernate.connection.characterEncoding}</prop>
            <prop key="hibernate.connection.charSet">${hibernate.connection.charSet}</prop>
        </props>
    </property>
</bean>


<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="transactionManager"
      class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>


<bean id="persistenceExceptionTranslationPostProcessor"
      class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>

在我的web.xml中

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/log4j.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>springGwtRemoteServiceServlet</servlet-name>
    <servlet-class>org.spring4gwt.server.SpringGwtRemoteServiceServlet</servlet-class>
</servlet>

再一次一切都很好,但这个检查问题让我很生气。任何帮助? THX

4 个答案:

答案 0 :(得分:2)

检查告诉你实话,因为你的sessionFactory bean实际上不是SessionFactory.类型

您的sessionFactory bean实际上是 类型LocalSessionFactoryBean,它是制造已配置的SessionFactory实例的工厂对象。< / p>

据推测,IDEA与其他FactoryBean实现的行为相同。

答案 1 :(得分:1)

是的,可能这就是问题所在。  \ web应用\ WEB-INF \ applicationContext.xml中 并在想法项目设置&gt;模块&gt; Spring我删除了facet&#39; Spring&#39; applicationContext在这个动作之后我没有收到任何警告,关于bean autowire,但是接收&#34; Spring Configuration Check&#34;问题。看起来像这里的问题。

答案 2 :(得分:1)

这是Intellij 13.1的回归。我回到了Intellij 13.0.3

http://confluence.jetbrains.com/display/IntelliJIDEA/Previous+IntelliJ+IDEA+Releases

并且ide再次对配置感到满意。

答案 3 :(得分:0)

我解决了这个问题。做这个: 如果您使用的是config.java文件,请按照选项1

进行操作

选项1 - 按F4打开项目设置。 - 单击Spring facets enter image description here

  • 单击“+”并在facet列表中添加Config.java文件以及您正在使用的任何其他beans.xml。 enter image description here

选项2-如果您使用spring-config.xml进行配置 - 按F4打开项目设置。 - 单击Spring facets enter image description here

  • 单击“+”并在facet列表和您正在使用的任何其他beans.xml中添加spring-xx xmls文件。 enter image description here