Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带ApplicationContext.xml的Spring JPA、DAO和服务为空_Java_Spring_Jpa_Maven_Applicationcontext - Fatal编程技术网

Java 带ApplicationContext.xml的Spring JPA、DAO和服务为空

Java 带ApplicationContext.xml的Spring JPA、DAO和服务为空,java,spring,jpa,maven,applicationcontext,Java,Spring,Jpa,Maven,Applicationcontext,我有点问题。所有DAO和服务都为空,我不知道如何修复:( 下面是web.xml中的配置部分 ... <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLoca

我有点问题。所有DAO和服务都为空,我不知道如何修复:(

下面是web.xml中的配置部分

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

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/applicationContext.xml
     </param-value>
</context-param>
...
。。。
org.springframework.web.context.ContextLoaderListener
上下文配置位置
/WEB-INF/applicationContext.xml
...
和在applicationContext.xml中

<context:component-scan base-package="com.tipytut" />
<context:annotation-config />

<bean
    class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

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

<bean
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>/WEB-INF/classes/tipytut.properties</value>
    </property>
</bean>

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="database" value="MYSQL" />
            <property name="showSql" value="true" />
        </bean>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
    <property name="dataSource" ref="dataSource" />
</bean>

<tx:annotation-driven transaction-manager="transactionManager" />

/WEB-INF/classes/tipytut.properties
我有一把这样的刀:

@Repository("tagDAO")
@Transactional
public class TagDAOImpl extends JpaDAO implements TagDAO {
    public List<Tag> getTags() {
        return getList("SELECT t FROM Tag t");
    }
}
@存储库(“tagDAO”)
@交易的
公共类TagDAOImpl扩展了JpaDAO实现TagDAO{
公共列表getTags(){
返回getList(“从标记t中选择t”);
}
}
…还有服务

@Service("managementService")
@Transactional
public class ManagementServiceImpl implements ManagementService {
    @Autowired
    private TagDAO tagDAO;

    public List<Tag> getTags() {
        return tagDAO.getTags();
    }
}
@服务(“管理服务”)
@交易的
公共类ManagementServiceImpl实现ManagementService{
@自动连线
私人塔道塔道;
公共列表getTags(){
返回tagDAO.getTags();
}
}
当我在控制器中调用该服务时,它总是空的

@Autowired
private ManagementService managementService;

public List<Tag> getTags() {
    try {
        managementService.getTags();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return tags;
}
@Autowired
私人管理服务;
公共列表getTags(){
试一试{
managementService.getTags();
}捕获(例外情况除外){
例如printStackTrace();
}
返回标签;
}
任何帮助都将不胜感激

更新:
我上传了我的项目(只是最初的部分,非常简单),所以每个人都可以看一看。希望有人能找出问题所在(

请检查这些服务/Dao是否在包com.tipytut中。上下文:在组件扫描中自动启用注释配置。您的控制器是用@controller注释的还是通过@component制作的组件?否则它不会被检测到,除非您手动连接,否则它不会成为SpringBean。因此自动连接将不起作用如果它不是Springbean

请检查这些服务/Dao是否在包com.tipytut中。上下文:注释配置在组件扫描中自动启用。您的控制器是用@controller注释的还是通过@component制作的组件?否则它不会被检测到,除非您手动连接它,否则它不会是Springbean。So如果不是SpringBean,自动连线将不起作用

使用
@Resource
注释

@Resource 
    private TagDAO tagDAO;
在配置文件中


使用
@controller
注释您的控制器,并将
@Resource
注释添加到您的服务中,与DAO的注释相同。

使用
@Resource
注释

@Resource 
    private TagDAO tagDAO;
在配置文件中


@controller
注释您的控制器,并将
@Resource
注释添加到您的服务中,与DAO的注释相同。

我忘了更新我的问题,最终解决了!我忘了为
struts2 spring plugin
添加依赖项,问题是我没有收到关于这个X的错误消息-(


希望这能帮助别人^^

我忘了更新我的问题,终于解决了!我忘了为
struts2-spring插件添加依赖项
,问题是我没有收到关于这个X的错误消息-(


希望这将有助于某人^ ^

+1我还将添加信息,作者可以通过XML中的显式声明以其他方式完成。我只需添加带有要扫描的服务和dao的包。应该可以。是的,它们是。无论如何感谢您的帮助+1我还将添加信息,作者可以通过显式声明以其他方式完成在XML.imo中,只需添加带有要扫描的服务和dao的包。应该可以。是的,它们可以。无论如何,感谢您的帮助