•Spring 4.x 中可以为子类注入子类对应的泛型类型的成员变量的引用
整合多个配置文件
•Spring 允许通过 <import> 将多个配置文件引入到一个文件中,进行配置文件的集成。这样在启动 Spring 容器时,仅需要指定这个合并好的配置文件就可以。
•import 元素的 resource 属性支持 Spring 的标准的路径资源
代码:
BaseRepository.java
package com.hzyc.spring.bean.generic.di;
/**
* @author xuehj2016
* @Title: BaseRepository
* @ProjectName Spring
* @Description: TODO
* @date 2018/12/19 0:23
*/
public class BaseRepository <T> {
}
BaseService.java
package com.hzyc.spring.bean.generic.di;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @author xuehj2016
* @Title: BaseService
* @ProjectName Spring
* @Description: TODO
* @date 2018/12/19 0:24
*/
public class BaseService<T> {
@Autowired
protected BaseRepository<T> repository;
public void add() {
System.out.println("add...");
System.out.println("repository");
}
}
UserRepository.java
package com.hzyc.spring.bean.generic.di;
import org.springframework.stereotype.Repository;
/**
* @author xuehj2016
* @Title: UserRepository
* @ProjectName Spring
* @Description: TODO
* @date 2018/12/19 0:27
*/
@Repository
public class UserRepository extends BaseRepository<User> {
}
UserService .java
package com.hzyc.spring.bean.generic.di;
import org.springframework.stereotype.Service;
/**
* @author xuehj2016
* @Title: UserService
* @ProjectName Spring
* @Description: TODO
* @date 2018/12/19 0:26
*/
@Service
public class UserService extends BaseService<User> {
}
user.java
package com.hzyc.spring.bean.generic.di;
/**
* @author xuehj2016
* @Title: User
* @ProjectName Spring
* @Description: TODO
* @date 2018/12/19 0:27
*/
public class User {
}
Main.java
package com.hzyc.spring.bean.generic.di;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author xuehj2016
* @Title: Main
* @ProjectName Spring
* @Description: TODO
* @date 2018/12/19 0:30
*/
public class Main {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean-generic-di.xml");
UserService userService= (UserService) applicationContext.getBean("userService");
System.out.println(userService);
userService.add();
}
}
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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.hzyc.spring.bean.generic.di"/>
</beans>