zoukankan      html  css  js  c++  java
  • Spring注入

    Spring注入

           Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为。


           常用的两种注入方式:

    • setter注入
    • 构造注入
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd" >
         <!-- setter注入 -->   
    	<bean id="setterService" class="com.injavawetrust.ioc.injection.service.SetterServiceImpl">
    		<property name="setterDao" ref="setterDao"></property>
    	</bean>
    	<!-- 构造注入 -->
    	<bean id="constructorService" class="com.injavawetrust.ioc.injection.service.ConstructorServiceImpl">
    		<constructor-arg name="constructorDao" ref="constructorDao"></constructor-arg>
    	</bean>
    	
    	<bean id="setterDao" class="com.injavawetrust.ioc.injection.dao.SetterDaoImpl"></bean>
    	<bean id="constructorDao" class="com.injavawetrust.ioc.injection.dao.ConstructorDaoImpl"></bean>
            
    </beans>
    import junit.framework.TestCase;
    
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.junit.runners.BlockJUnit4ClassRunner;
    import org.springframework.beans.BeansException;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.injavawetrust.ioc.injection.service.ConstructorService;
    import com.injavawetrust.ioc.injection.service.SetterService;
    /**
     * @author InJavaWeTrust
     */
    @RunWith(BlockJUnit4ClassRunner.class)
    public class TestInjection extends TestCase {
    	
    	private ClassPathXmlApplicationContext context;
    	@Before
    	public void before() {
    		try {
    			context = new ClassPathXmlApplicationContext("classpath:spring-injavawetrust.xml");
    			context.start();
    		} catch (BeansException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	@After
    	public void after() {
    		context.destroy();
    	}
    	
    	@Test
    	public void tesSetter() {
    		SetterService service = (SetterService) context.getBean("setterService");
    		service.say("setter-injavawetrust");
    	}
    	
    	@Test
    	public void testConstructor() {
    		ConstructorService service = (ConstructorService) context.getBean("constructorService");
    		service.say("constructor-injavawetrust");
    	}
    
    }
    /**
     * @author InJavaWeTrust
     */
    public interface SetterService {
    	public void say(String str);
    }
    import com.injavawetrust.ioc.injection.dao.SetterDao;
    /**
     * @author InJavaWeTrust
     */
    public class SetterServiceImpl implements SetterService {
    	
    	private SetterDao setterDao;
    
    	public void setSetterDao(SetterDao setterDao) {
    		this.setterDao = setterDao;
    	}
    
    	@Override
    	public void say(String str) {
    		System.out.println("接受参数:" + str);
    		str = "hello " + str;
    		setterDao.say(str);
    	}
    }
    /**
     * @author InJavaWeTrust
     */
    public interface SetterDao {
    	public void say(String str);
    }
    /**
     * @author InJavaWeTrust
     */
    public class SetterDaoImpl implements SetterDao {
    
    	@Override
    	public void say(String str) {
    		System.out.println("say: " + str);
    	}
    }
    /**
     * @author InJavaWeTrust
     */
    public interface ConstructorService {
    	public void say(String str);
    }
    import com.injavawetrust.ioc.injection.dao.ConstructorDao;
    /**
     * @author InJavaWeTrust
     */
    public class ConstructorServiceImpl implements ConstructorService {
    	
    	private ConstructorDao constructorDao;
    	
    	public ConstructorServiceImpl(ConstructorDao constructorDao) {
    		this.constructorDao = constructorDao;
    	}
    
    	@Override
    	public void say(String str) {
    		System.out.println("接受参数:" + str);
    		str = "hello " + str;
    		constructorDao.say(str);
    	}
    }
    /**
     * @author InJavaWeTrust
     */
    public interface ConstructorDao {
    	public void say(String str);
    }
    /**
     * @author InJavaWeTrust
     */
    public class ConstructorDaoImpl implements ConstructorDao {
    
    	@Override
    	public void say(String str) {
    		System.out.println(str);
    	}
    }
  • 相关阅读:
    Java 集合深入理解(15):AbstractMap
    数据库服务器的性能调优
    重温数据结构:哈希 哈希函数 哈希表
    Linux 虚存 linux2.6内核特性
    不想做却不得不做某份工作,怎么破?
    Java 集合深入理解(14):Map 概述
    Linux 虚存的性能问题
    Android重写getResources规避用户调整系统字体大小影响Android屏幕适配
    Android CardView设置成普通的Framelayout
    linux系统性能监控--网络利用率
  • 原文地址:https://www.cnblogs.com/new0801/p/6146645.html
Copyright © 2011-2022 走看看