Spring常用注解整理(按照功能分类)

一、一个接口多个实现类的注入方式

(一)使用@Qualifier指定加载接口的实现类

接口

@Service
public interface AbstractService {
	void sayHello();
}

实现类1

@Service("service1")
public class AbstractServiceImpl implements AbstractService{
	@Override
	public void sayHello() {
		System.out.println("say hello 1");
	}
}

实现类2

@Service("service2")
public class AbstractServiceImpl2 implements AbstractService{
	@Override
	public void sayHello() {
		System.err.println("say hello 2");
	}
}

注入方式

public class TestController {
	@Autowired
	@Qualifier("service1")
	private AbstractService abstractService;
    
    // do sth
}

(二)、使用@Primary指定首选加载类

注入方式

@Primary
public class AbstractServiceImpl implements AbstractService{
	@Override
	public void sayHello() {
		System.out.println("say hello 1");
	}
}

二、@Lazy懒加载

在类上使用@Lazy注解(需要配合Spring其他的注解),表明该类使用懒加载方式。即,类不在Spring容器初始化的时候创建类,而是在要使用到的时候才创建。

@Lazy
public class LazyTestBean{
    // field
    // method
}
posted @ 2019-12-27 14:45  xxx从入门到入坟  阅读(301)  评论(0)    收藏  举报