1. 程式人生 > >泛型依賴註入

泛型依賴註入

技術 framework style ati text 技術分享 特性 java mage

Spring 4.x的新特性

1.結構

技術分享圖片

BaseRepository.java:

1 package com.hk.beans.generic.di;
2 
3 public class BaseRepository<T> {
4 
5 }

BaseService.java:

 1 package com.hk.beans.generic.di;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 
 5 public class BaseService<T> {
6 7 @Autowired 8 protected BaseRepository<T> repository; 9 10 public void add(){ 11 System.out.println("add..."); 12 System.out.println(repository); 13 } 14 }

User.java:

1 package com.hk.beans.generic.di;
2 
3 public class User {
4 
5 }

UserRepository.java:

1 package com.hk.beans.generic.di;
2 
3 import org.springframework.stereotype.Repository;
4 
5 @Repository
6 public class UserRepository extends BaseRepository<User>{
7  
8 }

UserService.java:

1 package com.hk.beans.generic.di;
2 
3 import org.springframework.stereotype.Service;
4 
5 @Service
6 public class UserService extends BaseService<User>{ 7 8 }

Main.java:

 1 package com.hk.beans.generic.di;
 2 
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 
 6 public class Main {
 7     public static void main(String[] args) {
 8         ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-generic-di.xml");
 9         UserService userService = (UserService) ctx.getBean("userService");
10         userService.add();
11     }
12 
13 }

運行結果:

技術分享圖片

泛型依賴註入