zoukankan      html  css  js  c++  java
  • spring快速入门(三)

    一、在spring快速入门(二)的基础上,原先我们是采用构造方法完成对象的注入。这里还有其他的方法可以完成注入,通过set方法来完成。

      修改UserActionImpl

      

    package com.murong.action;
    
    import com.murong.dao.UserDao;
    import com.murong.dao.UserDaoMysqlImpl;
    import com.murong.dao.UserDaoOracleImpl;
    
    public class UserActionImpl implements UserAction{
    
        private UserDao userDao;
        
        /*public UserActionImpl(UserDao userDao) {
            this.userDao = userDao;
        }*/
        public void setUserDao(UserDao userDao) {
            this.userDao = userDao;
        }
    
        @Override
        public void addUser(String name, int age) {
            
            userDao.addUser(name, age);
        }
    
    }

      applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:aop="http://www.springframework.org/schema/aop"
             xmlns:tx="http://www.springframework.org/schema/tx"
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
         
         <bean id="userDaoMysqlImpl" class="com.murong.dao.UserDaoMysqlImpl"/> 
      
          <bean id="userDaoOracleImpl" class="com.murong.dao.UserDaoOracleImpl"/> 
          
          <bean id="userActionImpl" class="com.murong.action.UserActionImpl">
    
              <!-- mysql的实现 -->
              <!-- <constructor-arg ref="userDaoMysqlImpl"/> -->
              <!-- oracle的实现 -->
              <!-- <constructor-arg ref="userDaoOracleImpl"/> -->
              
              <property name="userDao" ref="userDaoMysqlImpl"/>
              
          </bean> 
    </beans>

     注意: <property name="userDao" ref="userDaoMysqlImpl"/>  中, name 的值 是set之后的方法名称,首字母小写。

      其他文件不改变、、、、、、

      可能会出现的问题: Could not instantiate bean class [com.murong.action.UserActionImpl]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.murong.action.UserActionImpl.<init>()

      原因:如果通过set方法的实现,必须提供无参的构造方法。所以必须注释有参的构造函数。

      

  • 相关阅读:
    html-webpack-plugin & clean-webpack-plugin
    Using webpack-dev-server
    Using Watch Mode
    webpack中devtool的配置方案[开发模式]---[线上模式]
    linux命令系列-mv(移动-重命名)
    洗牌函数[打乱数组的顺序] slice()的新运用 [原来arr.slice(start, end) 的start不是必需的]
    Currency Exchange (POJ1860)(判断正圈)(spfa) 最短路专题
    PTA L3-020 至多删三个字符 (DP) (天梯赛训练)
    Codeforces Round #658 (Div. 2)(D. Unmerge)
    Codeforces Round #656 (Div. 3) (E. Directing Edges)(拓扑排序)
  • 原文地址:https://www.cnblogs.com/yuanchaoyong/p/5749638.html
Copyright © 2011-2022 走看看