一、什么是Bean
1、Java是面向对象的,对象是有方法和属性,如果需要使用该对象的方法和属性,那么就需要实例化
2、可以把Bean理解为类的代言人,这样就能代表此类拥有该拥有的东西
规律:凡是子类带有方法或者属性的类都要加上注册Bean到spring IOC的注解
二、注解分类
注解分为两类
1、一类是使用Bean,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装;比如@Autowired , @Resource,可以通过byTYPE(@Autowired)、byNAME(@Resource)的方式获取Bean;
2、一类是注册Bean,@Component , @Repository , @ Controller , @Service , @Configration这些注解都是把你要实例化的对象转化成一个Bean,放在IoC容器中,等你要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法完美组装
三、Bean是啥
1、原理是什么,看源码
Indicates that a method produces a bean to be managed by the Spring container.
<h3>Overview</h3>
<p>The names and semantics of the attributes to this annotation are intentionally
similar to those of the {@code <bean/>} element in the Spring XML schema. For
example:
<pre class="code">
@Bean
public MyBean myBean() {
// instantiate and configure MyBean obj
return obj;
}</pre>
意思就是:@Bean明确的指示一种方法,一种产生bean的方法,并且交给spring容器管理;这就可以很容易理解了为什么要把@Bean放在某个方法上,可以理解为:你给产生一个Bean,然后给Spring容器,剩下的你就别管了