工厂方法
什么是工厂方法:
工厂方法在spring源码中它是一种标记。标记这个方法是工厂方法,方法的类就是工厂类。
主要的作用是想把被@Bean标记的方法的注入的容器中。
判断一个方法是否是工厂方法有两种方式:第一种是注解的方式,第二种是xml的方式。
注解的方式:
如果一个类是被@Configuration标记的类且这个类里面的方法是被@Bean标记的方法,
那么这方法就是工厂方法,这个类就是工厂类。
xml的方式:
就是通过 factory-method="方法的名称 factory-bean=“bean的名称” 标记。
factory-method:标记的方法就是工厂方法,factory-bean标记的类就是工厂类。
工厂方法和工厂模式有什么区别?
工厂方法是一个标记,工厂方法模式是一种设计模式。两个是不相同的概念。
注解的方式:
@Configuration //表明这是一个配置类
public class AddressPropertyConfiguration {
@Bean // 这个一个工厂方法
public Customer customer() {
return new Customer();
}
@Bean // 这个一个工厂方法
public Customer2 customer() {
return new Customer2();
}
如果一个类仅仅是被 @Configuration标记的类,那么它仅仅就是配置类。如果这个类里面的方法
有被@Bean的方法,那么这个类就是工厂类又是配置类。被@Bean标记的方法就是工厂方法。
因为这样做的目的是:将工厂方法也注册容器中 让spring管理。 ```
**源码set的地方:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/07a2b17da831446a8692162557c20305.png)
**源码get的地方:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/3764d9d702c044568f8b8f9bff6608be.png)