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 使用Spring MVC注入自动连线依赖项失败_Java_Spring_Spring Mvc - Fatal编程技术网

Java 使用Spring MVC注入自动连线依赖项失败

Java 使用Spring MVC注入自动连线依赖项失败,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正试图用SPing做一个简单的应用程序,但我不断地遇到这个错误,我不明白为什么 我什么都试过了,甚至整个应用程序都是我们写的。我甚至不知道问题出在哪里 这是我得到的错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogPostController': Injection of autowired dependencies failed; nested exc

我正试图用SPing做一个简单的应用程序,但我不断地遇到这个错误,我不明白为什么

我什么都试过了,甚至整个应用程序都是我们写的。我甚至不知道问题出在哪里

这是我得到的错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogPostController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.vst.blog.service.BlogService com.vst.blog.controller.BlogPostController.blogServiceImpl; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vst.blog.service.BlogService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1202)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4689)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5155)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.vst.blog.service.BlogService com.vst.blog.controller.BlogPostController.blogServiceImpl; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vst.blog.service.BlogService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:561)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    ... 22 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vst.blog.service.BlogService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1301)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1047)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533)
    ... 24 more

Jul 14, 2020 9:46:20 PM org.springframework.web.context.ContextLoader initWebApplicationContext
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogPostController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.vst.blog.service.BlogService com.vst.blog.controller.BlogPostController.blogServiceImpl; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vst.blog.service.BlogService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1202)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4689)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5155)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.vst.blog.service.BlogService com.vst.blog.controller.BlogPostController.blogServiceImpl; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vst.blog.service.BlogService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:561)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    ... 22 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vst.blog.service.BlogService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1301)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1047)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533)
    ... 24 more

Jul 14, 2020 9:46:20 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogPostController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.vst.blog.service.BlogService com.vst.blog.controller.BlogPostController.blogServiceImpl; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vst.blog.service.BlogService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1202)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4689)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5155)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.vst.blog.service.BlogService com.vst.blog.controller.BlogPostController.blogServiceImpl; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vst.blog.service.BlogService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:561)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    ... 22 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vst.blog.service.BlogService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1301)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1047)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533)
    ... 24 more



下面是给出问题的类(BlogPostController)

package com.vst.blog.controller;
导入org.jboss.logging.Logger;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Component;
导入org.springframework.stereotype.Controller;
导入org.springframework.web.bind.annotation.ModelAttribute;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RequestMethod;
导入org.springframework.web.servlet.ModelAndView;
导入com.vst.blog.model.BlogPost;
导入com.vst.blog.service.BlogService;
导入java.io.IOException;
导入java.sql.SQLException;
导入java.util.List;
导入javax.servlet.http.HttpServletRequest;
@控制器
公共类BlogPostControllerImpl{
专用静态最终记录器=记录器
.getLogger(BlogPostControllerImpl.class);
@自动连线
BlogService blogServiceImpl;
BlogPostControllerImpl(){}
@RequestMapping(value=“/”,method=RequestMethod.GET)
公共模型和视图索引(){
返回新的ModelAndView(“重定向:/web inf/pages/index.jsp”);
}
@请求映射(value=“/loadPosts”)
公共模型和视图列表帖子(模型和视图模型)引发IOException{
List listPosts=blogServiceImpl.selectBlogPostS();
model.addObject(“listPosts”,listPosts);
model.setViewName(“post”);
收益模型;
}
@RequestMapping(value=“/newPost”,method=RequestMethod.GET)
公共模型和视图newPost(模型和视图模型){
BlogPost=新建BlogPost();
model.addObject(“post”,post);
model.setViewName(“post_表单”);
收益模型;
}
@RequestMapping(value=“/savePost”,method=RequestMethod.POST)
publicmodelandview savePost(@modeldattributeblogpost)引发SQLException{
如果(post.getBlog_id()==0){
blogServiceImpl.insertBlogPost(post);
}否则{
blogServiceImpl.updateBlogPost(post);
}
返回新的ModelAndView(“重定向:/loadAlbums”);
}
@RequestMapping(value=“/editPost”,method=RequestMethod.GET)
公共模型和视图编辑帖子(HttpServletRequest){
intpostid=Integer.parseInt(request.getParameter(“blog_id”);
BlogPost=blogServiceImpl.选择BlogPostById(postId);
ModelAndView模型=新的ModelAndView(“后期表单”);
model.addObject(“post”,post);
收益模型;
}
@RequestMapping(value=“/deletePost”,method=RequestMethod.GET)
公共模型和视图deletePost(HttpServletRequest请求)引发SQLException{
intpostid=Integer.parseInt(request.getParameter(“blog_id”);
blogServiceImpl.deleteBlogPost(postId);
返回新的ModelAndView(“重定向:/loadPosts”);
}
}
这是类接口

package com.vst.blog.service;

import java.sql.SQLException;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.vst.blog.model.BlogPost;

public interface BlogService {

    public void insertBlogPost(BlogPost post) throws SQLException;

    public BlogPost selectBlogPostById(int id);

    public List<BlogPost> selectBlogPostS();

    public void deleteBlogPost(int id) throws SQLException;
    
    public void updateBlogPost(BlogPost post) throws SQLException;
}



package com.vst.blog.service;
导入java.sql.SQLException;
导入java.util.List;
导入org.springframework.stereotype.Repository;
导入com.vst.blog.model.BlogPost;
公共接口博客服务{
公共void insertBlogPost(BlogPost)抛出SQLException;
公共BlogPost selectBlogPostById(int-id);
公共列表selectBlogPostS();
public void deleteBlogPost(int-id)抛出SQLException;
公共void updateBlogPost(BlogPost)抛出SQLException;
}
以下是它的实施情况:



package com.vst.blog.service;

import java.sql.SQLException;
import java.util.List;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.vst.blog.dao.BlogPostDao;
import com.vst.blog.dao.BlogPostDaoImpl;
import com.vst.blog.dao.BlogPostDaoImpl;
import com.vst.blog.model.BlogPost;

@Service
@Transactional
public class BlogServiceImpl implements BlogService {
    
    @Autowired
    private BlogPostDao postDao;
    
    public BlogServiceImpl () {
        //postDao = new BlogPostDaoImpl();
    }


    public void insertBlogPost(BlogPost post) throws SQLException {
        postDao.insertBlogPost(post);
    }

    public BlogPost selectBlogPostById(int id) {
        return postDao.selectBlogPostById(id);
    }

    public List<BlogPost> selectBlogPostS() {
        return postDao.selectBlogPostS();
    }


    public void deleteBlogPost(int id) throws SQLException {
        postDao.deleteBlogPost(id);
    }

    public void updateBlogPost(BlogPost post) throws SQLException{
        postDao.updateBlogPost(post);
    }

}




包com.vst.blog.service;
导入java.sql.SQLException;
导入java.util.List;
导入javax.transaction.Transactional;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Service;
导入com.vst.blog.dao.BlogPostDao;
导入com.vst.blog.dao.BlogPostDaoImpl;
导入com.vst.blog.dao.BlogPostDaoImpl;
导入com.vst.blog.model.BlogPost;
@服务
@交易的
公共类BlogServiceImpl实现BlogService{
@自动连线
私人博客postDao postDao;
公共BlogServiceImpl(){
//postDao=新BlogPostDaoImpl();
}
public void insertBlogPost(BlogPost post)引发SQLException{
postDao.insertBlogPost(post);
}
public BlogPost selectBlogPostById(int-id){
返回postDao,选择blogpostbyid(id);
}
公共列表selectBlogPostS(){
返回postDao.selectBlogPostS();
}
public void deleteBlogPost(int-id)引发SQLException{
deleteBlogPost(id);
}
public void updateBlogPost(BlogPost)引发SQLException{
postDao.updateBlogPost(post);
}
}
这是DaoImpl




package com.vst.blog.dao;

import java.util.List;

import javax.transaction.Transactional;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

import com.vst.blog.model.BlogPost;

@Service
@Transactional
public class BlogPostDaoImpl implements BlogPostDao {
    
    public BlogPostDaoImpl () {}

    @Autowired
    private SessionFactory sessionFactory;
    
    public void insertBlogPost(BlogPost post) {
        sessionFactory.getCurrentSession().saveOrUpdate(post);

    }

    public BlogPost selectBlogPostById(int id) {
        
        return (BlogPost) sessionFactory.getCurrentSession().get(
                BlogPost.class, id);
        

    }

    @SuppressWarnings("unchecked")
    public List<BlogPost> selectBlogPostS() {
        
        return sessionFactory.getCurrentSession().createQuery("from blog")
                .list();

    }


    public void deleteBlogPost(int id)  {
        BlogPost post = (BlogPost) sessionFactory.getCurrentSession().load(
                BlogPost.class, id);
        if (null != post) {
            this.sessionFactory.getCurrentSession().delete(post);
        }
        

    }


    public BlogPost updateBlogPost(BlogPost post)  {
        sessionFactory.getCurrentSession().update(post);
        return post;

    }

}



包com.vst.blog.dao;
导入java.util.List;
导入javax.transaction.Transactional;
导入org.hibernate.SessionFactory;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Repository;
导入org.springframework.stereotype.Service;
导入com.vst.blog.model.BlogPost;
@服务
@交易的
公共类BlogPostDaoImpl实现BlogPostDao{
公共BlogPostDaoImpl(){}
@自动连线
私人会话工厂会话工厂;
公共void insertBlogPost(BlogPost){
sessionFactory.getCurrentSession().saveOrUpdate(post);
}
public BlogPost selectBlogPostById(int-id){
return(BlogPost)sessionFactory.getCurrentSession().get(
BlogPost.class,id);
}
@抑制警告(“未选中”)
公共列表selectBlogPostS(){
返回sessionFactory.getCurrentSession().createQuery(“从博客”)
.list();
}
公共void deleteBlogPost(内部id){
BlogPost=(BlogPost



package com.vst.blog.dao;

import java.util.List;

import javax.transaction.Transactional;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

import com.vst.blog.model.BlogPost;

@Service
@Transactional
public class BlogPostDaoImpl implements BlogPostDao {
    
    public BlogPostDaoImpl () {}

    @Autowired
    private SessionFactory sessionFactory;
    
    public void insertBlogPost(BlogPost post) {
        sessionFactory.getCurrentSession().saveOrUpdate(post);

    }

    public BlogPost selectBlogPostById(int id) {
        
        return (BlogPost) sessionFactory.getCurrentSession().get(
                BlogPost.class, id);
        

    }

    @SuppressWarnings("unchecked")
    public List<BlogPost> selectBlogPostS() {
        
        return sessionFactory.getCurrentSession().createQuery("from blog")
                .list();

    }


    public void deleteBlogPost(int id)  {
        BlogPost post = (BlogPost) sessionFactory.getCurrentSession().load(
                BlogPost.class, id);
        if (null != post) {
            this.sessionFactory.getCurrentSession().delete(post);
        }
        

    }


    public BlogPost updateBlogPost(BlogPost post)  {
        sessionFactory.getCurrentSession().update(post);
        return post;

    }

}


package com.vst.blog.dao;

import java.sql.SQLException;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.vst.blog.model.*;

@Repository
public interface BlogPostDao {

    public void insertBlogPost(BlogPost post) throws SQLException;

    public BlogPost selectBlogPostById(int id);

    public List<BlogPost> selectBlogPostS();

    public void deleteBlogPost(int id) throws SQLException;
    
    public BlogPost updateBlogPost(BlogPost post) throws SQLException;
    
}





<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- Specifying base package of the Components like Controller, Service, 
        DAO -->
    <context:component-scan base-package="com.vst" />



    <!-- Getting Database properties -->
    <context:property-placeholder location="classpath:application.properties" />

    <mvc:annotation-driven />

    <!-- Specifying the Resource location to load JS, CSS, Images etc -->
    <mvc:resources mapping="/resources/**" location="/resources/" />

    <!-- View Resolver -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/" />
        <property name="suffix" value=".jsp" />
    </bean>

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

    <!-- Hibernate SessionFactory -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
                <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            </props>
        </property>
        <property name="packagesToScan" value="com.vst.blog.model"></property>
    </bean>

    <!-- Transaction -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager" />
</beans>
    <context:component-scan base-package="com.VST" />
    <context:component-scan base-package="com.VST.blog.service" />
    <context:component-scan base-package="com.VST.blog.controller" />
    <context:component-scan base-package="com.VST.blog.dao" />
BlogService blogServiceImpl; 
BlogService blogService;