1. 程式人生 > >Spring入門學習(泛型依賴注入) 第十三節

Spring入門學習(泛型依賴注入) 第十三節

Spring入門學習(泛型依賴注入)

Spring4泛型依賴注入

  1. 建立泛型類BaseRepository<T>BaseService<T>BaseService中注入了BaseRepository<T>類的bean
    public class BaseRepository<T> {
    
    }
    
    public class BaseService<T> {
    
    	@Autowired
    	private BaseRepository<T> baseRepository;
    public void add() { System.out.println("BaseRepository add...."); System.out.println(baseRepository); } }
  2. 建立User類,UserService類,UserRepository類,並添加註解:
    public class User {
    
    }
    
    @Service
    public class UserService extends BaseService<User> {
    	
    }
    
    @Repository
    public class UserRepository extends
    BaseRepository<User> { }
  3. 建立一個bean配置檔案beans-generic-di.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation=
    "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"
    >
    <context:component-scan base-package="com.fafa.spring.beans.generic.di"></context:component-scan> </beans>
  4. 建立測試類:
    
    public class Main {
    	
    	public static void main(String[] args) {
    		ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath*:beans-generic-di.xml");
    		
    		UserService userService = (UserService) ctx.getBean("userService");
    		userService.add();
    	}
    }
    
    測試結果:
    BaseRepository add....
    [email protected]
    
    此時baseRepository的bean是一個UserRepository的bean