如何配置Spring bean用于原型?

时间:2017-04-01 06:40:50

标签: java spring

之前我把它写成单身,没有错误。 但我认为我应该根据请求制作实例。 我有代码

@echo of
// Now the thing i want:
if not exist "%user%" (
goto :Register
)
:login
call Functions\user.bat
echo Hello %user%!
pause

:register
echo Register..
pause

它引发了一个例外。

<!--Dao configuration-->
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean" scope="request">  
    <property name="mapperInterface" value="Dao.UserDao"></property>  
    <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  
</bean> 


package Test;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import Common.InitDataBases;
import Common.Controller.OutputStringController;
import Dao.UserDao;
import Model.User;
import java.util.List;

import org.apache.log4j.Logger;

@Controller
@Scope("request") 
public class Hello extends OutputStringController{
    private UserDao uDao;
    @RequestMapping(value = "/getUser", produces = "text/html;charset=UTF-8")
    @ResponseBody 
    public String dbTest(String username) {
        System.out.println(uDao.findByUsername(username).getUsername());
        return success("");
    }
    @Required 
    public void setuDao(UserDao uDao) {
        this.uDao = uDao;
    }

}

我现在无法找到解决方案。 我想这样做:每个http请求将创建一个控制器,一个服务和一个dao。 救命啊!

2 个答案:

答案 0 :(得分:0)

你不需要@Scope(“请求”)这个,默认是springmvc中的原型

答案 1 :(得分:0)

查看异常

  

org.springframework.beans.factory.BeanInitializationException:bean'hello'需要属性'uDao'

uDao未配置为注入bean。

尝试使用

@Autowired
private UserDao uDao;

还要确保在xml配置中是否启用了组件扫描。