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

      

  • 相关阅读:
    01_javaSE面试题:自增变量
    SpringBoot(二十)_404返回统一异常处理结果
    MD5加密工具代码
    SpringBoot(十九)_spring.profiles.active=@profiles.active@ 的使用
    读取本地文件转化成MultipartFile
    remote: http basic: access denied fatal: authentication failed for '‘解决办法
    git报错_you are not allowed to push code to protected branches on this project
    SpringBoot(十八)_springboot打成war包部署
    sql优化问题笔记(mysql)
    gitbook 简单使用
  • 原文地址:https://www.cnblogs.com/yuanchaoyong/p/5749638.html
Copyright © 2020-2023  润新知