我们来来看一下,如果我们自己管理依赖的话,是怎么写的。

BinarySearchImpl bsi = new BinarySearchImpl(new QuickSortAlgorithm());
int result = bsi.binarySearch(new int[] {10, 6 , 4}, 3);

上面的操作,如果交给Spring去做的话。

我们需要告诉

  • 那些类需要管理的Beans?
  • 那些是一个Bean的依赖?
  • 去哪里找Beans

因为我们使用Spring Initializr创建的项目。Spring核心的依赖已经被添加到我们的依赖了。

我们可以直接使用。

那些类需要管理的Beans

下面我们使用@Component 来注解一个Bean。

@Component
public class BinarySearchImpl {}

比如说我们这里使用快速排序。

@Component
public class BubbleSortAlgorithm implements SortAlgorithm {}

那些是一个Bean的依赖?

下面我们使用@Autowired来告诉Spring,一个Bean里有哪些依赖。

@Component
public class BinarySearchImpl {
	@Autowired
	private SortAlgorithm sortAlgorithm;
  
  ......
}

去哪里找Beans

因为我们这里自己的主类使用了@SpringBootApplication 注解。

它会扫描当前包及其子包下所有Spring注解的类,然后放到spring容器中进行管理。

那我们来写一下,使用Spring来管理依赖。

		ApplicationContext applicationContext = SpringApplication.run(DemoApplication.class, args);
		BinarySearchImpl bean = applicationContext.getBean(BinarySearchImpl.class);
		int result = bean.binarySearch(new int[] { 10, 8, 1, 5 }, 8);
		System.out.println(result);