最简单的(直接量值)set的注入-IOC-Bean对象属性值注入(依赖注入)

在Spring中对Bean属性赋值的过程我们称之为(值的注入)依赖注入.Spring应用中为Bean的属性注入值的方式有两种,set注入和构造注入,set注入式通过对象的set方法为对象属性赋值,构造注入为通过bean对象的构造方法为属性注入值。

Spring 直接量值的注入:指的是通过Spring IOC为对象的8种基本数据类型,8种基本数据类型对应的封装类以及String类型,日期类型的属性注入值。

反射让不可访问的方法变成可被访问的

    private OpenDataSource() {
        System.out.println("OpenDataSource.OpenDataSource()");
    }

构造方法可以私有

package utils;
/**
 * 模拟数据源对象
 * @author Administrator
 *javax.sql.DataSource
 *模拟写一个开源的连接池
 *如何将此对象交给Spring管理
 *1)以xml的方式对此对象进行描述(在配置文件中以标签描述)
 *2)以注解的方式对此对象进行描述
 */
public class OpenDataSource {
    private String driverClassName;
    private String url;
    private String userName;
    private String password;
    //为属性赋值的过程叫值的注入,也叫依赖注入,通过调用对象的set方法赋值
    public OpenDataSource() {
        System.out.println("OpenDataSource.OpenDataSource()");
    }
    
    public void init(){
        System.out.println("OpenDataSource.init()");
    }
    public void close(){
        System.out.println("OpenDataSource.destory()");
    }
    
    public String getDriverClassName() {
        return driverClassName;
    }
    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "OpenDataSource [driverClassName=" + driverClassName + ", url=" + url + ", userName=" + userName
                + ", password=" + password + "]";
    }
    
}


    
    
    
    
    
         
        
        
        
        
    

package test;

import org.junit.After;
import org.junit.Before;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestBase {
    protected ClassPathXmlApplicationContext ctx;
    @Before
    public void init(){
        ctx=new ClassPathXmlApplicationContext("spring-configs.xml");
    }
    @After
    public void close(){
        ctx.close();
    }
}
package test;

import org.junit.Assert;
import org.junit.Test;

import utils.OpenDataSource;

public class TestDataSource01 extends TestBase{
    @Test
    public void testOpenDataSource(){
        //获取bean对象
        OpenDataSource ds = ctx.getBean(OpenDataSource.class);
        //测试对象值是否为空
        Assert.assertNotEquals(null, ds);
        System.out.println(ds);
    }
}

你可能感兴趣的:(最简单的(直接量值)set的注入-IOC-Bean对象属性值注入(依赖注入))