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

Spring——依赖注入、自动装配、集合注入、数据源对象管理

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

Spring——依赖注入、自动装配、集合注入、数据源对象管理

目录

1.依赖注入方式

1.1 setter注入​编辑

1.2 构造器注入

解耦的另外两种参数配置

1.3 依赖注入方式选择​编辑

2.依赖自动装配

3. 集合注入

4.数据源对象管理

4.1在applicationContext.xml中配置

4.2 加载properties文件


 

1.依赖注入方式

1.1 setter注入

public class BookDaoImpl implements BookDao {
    //setter注入——基本类型
    private int dataConnectionNum;//可以动态配置
    private String dataBaseName;//可以动态配置

    public void setDataConnectionNum(int dataConnectionNum) {
        this.dataConnectionNum = dataConnectionNum;
    }

    public void setDataBaseName(String dataBaseName) {
        this.dataBaseName = dataBaseName;
    }

    public void save() {
        System.out.println("BookDaoImpl save()"+" databaseName:"+dataBaseName+" dataConnectionNum:"+dataConnectionNum);
    }
}


public class UserDaoImpl implements UserDao {
    public void save() {
        System.out.println("UserDaoImpl save()");
    }
}

public class ServiceImpl implements Service {
    //setter注入——引用类型
    private BookDao bookDao;
    private UserDao userDao;

    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

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

    public void save() {
        System.out.println("ServiceImpl save()");
        bookDao.save();
        userDao.save();
    }
}


public class App {
    public static void main(String[] args) {
        //获取IoC容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

        //获取bean(根据bean配置id获取)
        Service service = (Service) ctx.getBean("service");
        service.save();


        //控制台:
        //ServiceImpl save()
        //BookDaoImpl save() databaseName:MySQL dataConnectionNum:10 //可以动态获取
        //UserDaoImpl save()
    }
}
    
    
    
        
        
        
    
    
    
        
        
        
    

1.2 构造器注入

 

public class BookDaoImpl implements BookDao {
    //setter注入——基本类型
    private String dataBaseName;//可以动态配置
    private int dataConnectionNum;//可以动态配置

    public BookDaoImpl(String dataBaseName, int dataConnectionNum) {
        this.dataBaseName = dataBaseName;
        this.dataConnectionNum = dataConnectionNum;
    }

    public void save() {
        System.out.println("BookDaoImpl save()"+" databaseName:"+dataBaseName+" dataConnectionNum:"+dataConnectionNum);
    }
}

public class UserDaoImpl implements UserDao {
    public void save() {
        System.out.println("UserDaoImpl save()");
    }
}


public class ServiceImpl implements Service {
    //setter注入——引用类型
    private BookDao bookDao;
    private UserDao userDao;

    public ServiceImpl(BookDao bookDao, UserDao userDao) {
        this.bookDao = bookDao;
        this.userDao = userDao;
    }

    public void save() {
        System.out.println("ServiceImpl save()");
        bookDao.save();
        userDao.save();
    }
}


public class App {
    public static void main(String[] args) {
        //获取IoC容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

        //获取bean(根据bean配置id获取)
        Service service = (Service) ctx.getBean("service");
        service.save();


        //控制台:
        //ServiceImpl save()
        //BookDaoImpl save() databaseName:MySQL dataConnectionNum:10 //可以动态获取
        //UserDaoImpl save()
    }
}
    
    

    
        
        
        
    

    
        
        
        
        
    

解耦的另外两种参数配置

    
    

    
        
        
        
    

    
        
        
        
        
    

    
    

    
        
        
        
    

    
        
        
        
        
    

1.3 依赖注入方式选择

2.依赖自动装配
    
    
    

3. 集合注入
public class BookDaoImpl implements BookDao {

    private int[] arr;
    private List list;
    private Set set;
    private Map map;
    private Properties properties;

    public void setArr(int[] arr) {
        this.arr = arr;
    }

    public void setList(List list) {
        this.list = list;
    }

    public void setSet(Set set) {
        this.set = set;
    }

    public void setMap(Map map) {
        this.map = map;
    }

    public void setProperties(Properties properties) {
        this.properties = properties;
    }

    public void print() {
        System.out.println(Arrays.toString(arr));
        System.out.println(list);
        System.out.println(set);
        System.out.println(map);
        System.out.println(properties);
    }
}
    
        
            
                100
                200
                300
            
        
        
            
                zhangsan
                lisi
                wangwu
            
        
        
            
                zhangsan
                lisi
                wangwu
            
        
        
            
                
                
                
            
        
        
            
                30
                20
                25
            
        
        
    
    public static void main(String[] args) {
        //获取IoC容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

        //获取bean(根据bean配置id获取)
        BookDao bookDao = (BookDao) ctx.getBean("bookDao");

        bookDao.print();
        //[100, 200, 300]
        //[zhangsan, lisi, wangwu]
        //[zhangsan, lisi, wangwu]
        //{zhangsan=30, lisi=20, wangwu=25}
        //{zhangsan=30, lisi=20, wangwu=25}
    }
}


4.数据源对象管理

4.1在applicationContext.xml中配置

4.2 加载properties文件
 





    

    
    

    
    
        
        
        
        
    

注意!!!!!

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

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

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