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方法的实现,必须提供无参的构造方法。所以必须注释有参的构造函数。

      

  • 相关阅读:
    CentOS6.4 64位系统安装jdk
    oracle安装界面中文乱码解决
    亦步亦趋在CentOS 6.4下安装Oracle 11gR2(x64)
    CentOS 6.3(x86_64)下安装Oracle 10g R2
    Spring中映射Mongodb中注解的解释
    MongoDB 创建基础索引、组合索引、唯一索引以及优化
    MongoDB 用MongoTemplate查询指定时间范围的数据
    Java获取泛化类型
    SpringBoot标准Properties
    java如何获取一个对象的大小【转】
  • 原文地址:https://www.cnblogs.com/yuanchaoyong/p/5749638.html
Copyright © 2011-2022 走看看