刚接触ssm,把dao、service、action三个层都注入了,顺带把bean也注入了……
所谓注入,就是加个@Component,调用时加个@Resource
使用和调用都没问题,但数据不对啊……
登陆模块,一个user类,用户名密码两个属性,前端传过来没问题,一路走到数据库,校验完毕往回返……
结果进来的也是user类(即用户输入的),返回的也是user类(数据库查的),两个类是一个……
好吧,我改个名,注入两个对象,但这次登陆和下次登陆(同一用户)又是共用了一个对象……
改成多例?感觉没啥用啊,我特想要一个空的user类,可看哪个都不保险……难道要写个给user类恢复默认值的方法?
所以,请问这种user类,传数据用的,是不是没必要注入啊?直接new行么?受不了注入了……
多谢

解决方案 »

  1.   

    也算刚学,我觉得你使用注解可以添加名称,然后注入的时候resource name。
      

  2.   


    高手,再请教:
    1、ssm框架里,是不是控制层、service层之后,没有专门的dao层,直接写个mapper接口+mapper.xml就行了?没有额外的dao层了是吧?是不是mapper层就相当于dao层了?谢谢
    2、对一个表来说,增删改是不是写一个service,里面放3个方法就行了?还是得写3个service?谢谢暂时就碰到这俩问题,如果可能的话帮一把,谢谢
      

  3.   


    另外还有个问题:
    mybatis里,sqlsession对象适合注入吗?写在类里行吗?据说有线程安全问题,这个怎么弄好呢?谢谢
      

  4.   


    高手,再请教:
    1、ssm框架里,是不是控制层、service层之后,没有专门的dao层,直接写个mapper接口+mapper.xml就行了?没有额外的dao层了是吧?是不是mapper层就相当于dao层了?谢谢
    2、对一个表来说,增删改是不是写一个service,里面放3个方法就行了?还是得写3个service?谢谢暂时就碰到这俩问题,如果可能的话帮一把,谢谢
    1. mapper 相当于dao吧,功能都是一样的,mapper或者dao里接口的方法名和xml中的id必须相同
    2.service层是业务逻辑处理层,dao或者mapper是负责数据库处理的,由service调用mapper或者dao,对于同一张表,完全可以把增删改查放到同一个dao接口中;
    3. 在一个service中,只要有需要,完全可以调用dao的多个方法,比如在UserService中,调用 userDAO.queryAll,也可以调用userDAO.modifyUserByID(123);
      

  5.   


    另外还有个问题:
    mybatis里,sqlsession对象适合注入吗?写在类里行吗?据说有线程安全问题,这个怎么弄好呢?谢谢
    spring-mybatis,了解下
      

  6.   


    另外还有个问题:
    mybatis里,sqlsession对象适合注入吗?写在类里行吗?据说有线程安全问题,这个怎么弄好呢?谢谢
    spring-mybatis,了解下你好,学了一个SqlSessionTemplate,但貌似csdn里没人用这个啊,大家都用默认的
    而且,用SqlSessionTemplate的时候,貌似用不到mapper接口,而是在service里直接用sqlSession.XXXX(“xml里的mapper名”)来实现的,绕开了dao的接口。
    请问是因为SqlSessionTemplate太新了吗?谢谢
      

  7.   


    另外还有个问题:
    mybatis里,sqlsession对象适合注入吗?写在类里行吗?据说有线程安全问题,这个怎么弄好呢?谢谢
    spring-mybatis,了解下@maradona1984
    貌似有个sqlsession
      

  8.   

    1.mybatis封装了SqlSessionTemplate,所以不需要。
    2.可以多个表的增删改查写在一个mybatis.xml里面,但里面的sql语句id要和mapp(dao)接口里面的方法名对上。
    3.理论上一张表对应一个mapper(dao),一个mybatis.xml,一个service接口,一个serviceImpl实现类,这是一套的。
      

  9.   

    在配置文件中注入对象bean标签中添加一个属性scope=prototype,就可以每次都会new一个新的对象了
      

  10.   

    Bean不过是跟数据库表对应的罢了.....