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
答案 0 :(得分:2)
检查告诉你实话,因为你的sessionFactory
bean实际上不是SessionFactory.
类型
您的 据推测,IDEA与其他sessionFactory
bean实际上是 类型LocalSessionFactoryBean
,它是制造已配置的SessionFactory
实例的工厂对象。< / p>
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
选项2-如果您使用spring-config.xml进行配置 - 按F4打开项目设置。 - 单击Spring facets