Spring4.0学习10

泛型依赖注入

Spring 4.x 中可以为子类注入子类对应的泛型类型的成员变量的引用

示例:

新建beans-generic.di.xml,新建com.generic.di包,包下面新建6个类,分别是Main.java,User.java,BaseService.java,BaseRepository.java,UserService.java,UserRepository.java

beans-generic.di.xml:

1
<context:component-scan base-package="com.generic.di"></context:component-scan>

BaseService.java:

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

BaseRepository.java:

1
public class BaseRepository<T> {}

User.java:

1
public class BaseRepository<T> {}

UserService.java:

1
2
3
import org.springframework.stereotype.Service;
@Service
public class UserService extends BaseService<User>{}

UserRepository.java:

1
2
3
4
import org.springframework.stereotype.Repository;
@Repository
public class UserRepository extends BaseRepository<User>{
}

Main.java:

1
2
3
4
5
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-generic.di.xml");
UserService userService = (UserService)ctx.getBean("userService");
userService.add();
}

整合多个配置文件

Spring 允许通过 <import> 将多个配置文件引入到一个文件中,进行配置文件的集成。这样在启动 Spring 容器时,仅需要指定这个合并好的配置文件就可以。
import 元素的 resource 属性支持 Spring 的标准的路径资源

Newer Post

Spring4.0学习11--AOP

动态代理在业务处理时,有时候我们需要添加一些日志等非核心的需求代码,如果这些代码分散在各个核心代码间会很冗余,不利于管理和维护,这时候我们可以使用动态代理来解决以上问题。举个例子:12345678910111213141516@Override public int add(int i, int j …

继续阅读
Older Post

Spring4.0学习9--通过注解配置bean

一、在 classpath 中扫描组件 组件扫描(component scanning): Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件.特定组件包括: @Component: 基本注解, 标识了一个受 Spring 管理的组件 @Respository …

继续阅读