栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

什么是spring的依赖注入,注入方式有哪些(spring依赖注入的四种方式)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是spring的依赖注入,注入方式有哪些(spring依赖注入的四种方式)

前景:

因为我们一直是在dao层进行的配置,但是如果我们去到业务层和web层进行配置会更麻烦所以就出现了依赖注入这个概念,可以让我们更简单的配置和使用spring

概念:

依赖注入前题

在使用依赖注入的时候需要保证的是注入的依赖是已经配置好的对象,否则会出现问题

使用Set方法注入依赖
public class UserServiceImp implements UserService {
    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void save() {
        userDao.save();
    }
}

        
    

这个就是通过去获取UserseriveImp中set发法中的UserDao类来进行依赖注入,而UserDao已经在配置文件中进行好了配置,在使用时会直接创建实体类,供UserServiceImp使用,而 ref则是表示对象引用。

使用构造函数注入依赖
public class UserServiceImp implements UserService {
    private UserDao userDao;
        public UserServiceImp(UserDao userDao) {
        this.userDao = userDao;
    }
   

    @Override
    public void save() {
        userDao.save();
    }
}
  

这个的实现原理与set一样

注意点:在使用

要通过容器去创建实体类,而不是通过new方法去创建一个对象,不然会出现UserDao的空指针错误,原因是因为new创建的时候没有创建出UserDao的实体类。

不同数据类型的set注入方法
private UserDao userDao;
    private List strList;
    private Map userMap;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void setStrList(List strList) {
        this.strList = strList;
    }

    public void setUserMap(Map userMap) {
        this.userMap = userMap;
    }
    @Override
    public void save() {
        System.out.println(userMap);
        System.out.println(strList);
    }

        
            
                    lll1
                    lll2
                    lll3
            
        
        
            
                
            
        
    

对于USer这个Map中的反射类型来说需要在xml文件中配置好他原类的配置,这样才能使用


        
        
    

使用效果

分模块开发

Spring的重点配置

API解释

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775948.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号