ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

set注入与构造器注入

2021-09-22 13:04:57  阅读:167  来源: 互联网

标签:set service dao 构造 UserServiceImpl xiang com public 注入


spring

set注入与构造器注入

1、配置依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.9</version>
        </dependency>
    </dependencies>

2、编写dao.UserDao类

package com.xiang.dao;

/**
 * Created by IntelliJ IDEA.
 * User: xiang
 * Date: 2021/9/22 10:55
 */
public interface UserDao {
    String show();
}

3、编写dao.impl.UserDaoimpl1/UserDaoimpl2类

package com.xiang.dao.impl;

import com.xiang.dao.UserDao;

/**
 * Created by IntelliJ IDEA.
 * User: xiang
 * Date: 2021/9/22 10:56
 */
public class UserDaoImpl1 implements UserDao {
    @Override
    public String show() {
        return "查询用户信息1";
    }
}
package com.xiang.dao.impl;

import com.xiang.dao.UserDao;

/**
 * Created by IntelliJ IDEA.
 * User: xiang
 * Date: 2021/9/22 10:56
 */
public class UserDaoImpl2 implements UserDao {
    @Override
    public String show() {
        return "查询用户信息2";
    }
}

4、编写service.UserService类

package com.xiang.service;

/**
 * Created by IntelliJ IDEA.
 * User: xiang
 * Date: 2021/9/22 10:57
 */
public interface UserService {
String show();
}

5、编写service.UserServiceImpl类

package com.xiang.service;

import com.xiang.dao.UserDao;
import com.xiang.dao.impl.UserDaoImpl1;

/**
 * Created by IntelliJ IDEA.
 * User: xiang
 * Date: 2021/9/22 10:57
 */
public class UserServiceImpl implements  UserService{
//    private UserDaoImpl1 userDaoImpl1 = new UserDaoImpl1();
    private UserDao userDao;

    /**
     * set 注入
     * @param userDao
     */
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    /**
     * 构造方法
     * 构造器 注入
     * @param userDao
     */
   public  UserServiceImpl(UserDao userDao){
        this.userDao = userDao;
   }

    /**
     * 调方法
     * @return
     */
    @Override
    public String show() {
        return userDao.show();
    }
}

6、编写测试类

package com.xiang.service;

import com.xiang.dao.impl.UserDaoImpl1;
import com.xiang.dao.impl.UserDaoImpl2;
import org.junit.Test;

/**
 * Created by IntelliJ IDEA.
 * User: xiang
 * Date: 2021/9/22 11:00
 */
public class UserServiceImplTest {

    /**
     * 普通方式查询
     */
//    @Test
//    public void Test01() {
//        UserServiceImpl service = new UserServiceImpl();
//        System.out.println(service.show());
//    }

    /**
     * set 注入
     */
//    @Test
//    public void Test02() {
//        UserServiceImpl service = new UserServiceImpl();
//        service.setUserDao(new UserDaoImpl2());
//        System.out.println(service);
//        System.out.println(service.show());
//    }

    /**
     * set 注入
     */
//    @Test
//    public void Test03() {
//        UserServiceImpl service = new UserServiceImpl();
//        service.setUserDao(new UserDaoImpl1());
//        System.out.println(service);
//        System.out.println(service.show());
//    }

    /**
     * 构造器 注入
     */
    @Test
    public void Test04() {
        UserServiceImpl service = new UserServiceImpl(new UserDaoImpl2());
        System.out.println(service);
        System.out.println(service.show());
    }
}

7、运行结果

标签:set,service,dao,构造,UserServiceImpl,xiang,com,public,注入
来源: https://www.cnblogs.com/d534/p/15319450.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有