1. 程式人生 > >Spring學習(七)-泛型注入

Spring學習(七)-泛型注入

@Autowired註解自動 裝配具有相容型別的單個bean屬性

1.bean-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-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"
>
<context:component-scan base-package="com.spring.generic.di"> </context:component-scan> </beans>

2.java檔案

<!-- 定義帶泛型的父類-->
package com.spring.generic.di;

public class BaseRepository <T>{

}


package com.spring.generic.di;

import org.springframework.beans.factory.annotation.Autowired;

public class
BaseService <T>{
@Autowired protected BaseRepository<T> repository; public void add() { System.out.println("add.."); System.out.println(repository); } } <!--繼承集合泛型的子類--> package com.spring.generic.di; import org.springframework.stereotype.Repository; @Repository
public class UserRepository extends BaseRepository<User> { } package com.spring.generic.di; import org.springframework.stereotype.Service; @Service public class UserService extends BaseService<User> { } <!--泛型類--> package com.spring.generic.di; public class User { } <!--實現類--> package com.spring.generic.di; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("springXML/bean-generic-di.xml"); UserService userService=(UserService)ctx.getBean("userService"); userService.add(); } }