Bean 在容器内被封装成
BeanDefinition类,具体内容可访问 官方文档 进行深入了解
bean命名约定为小驼峰式(如 accountManager、accountService、userDao、loginController)
通过类路径中的组件扫描,基本上采用简单的类名并将其初始字符转换为小写。但是,特殊情况下,当有多个字符并且第一个和第二个字符都是大写时,原始大小写将被保留。这些规则与
java.beans.Introspector.decapitalize(Spring在这里使用的规则)所定义的规则相同。
newBean类:
package hom.wang.vo;
public class ExampleBean {
// ...
}
xml 定义Bean:
<beans>
<bean id="exampleBean" class="hom.wang.vo.ExampleBean"/>
beans>
通过 factory-method 调用静态工厂方法,返回一个 Bean 实例。
Bean类:
package hom.wang.vo;
public class ExampleBean {
private static ExampleBean exampleBean = new ExampleBean();
public static ExampleBean createInstance(){
return exampleBean;
}
}
xml 定义Bean:
<beans>
<bean id="exampleBean" class="hom.wang.vo.ExampleBean" factory-method="createInstance"/>
beans>
与通过静态工厂方法进行实例化类似,实例工厂方法实例化就是bean-B通过 factory-bean 指定bean-A,再通过 factory-method 指定bean-A的静态工厂方法返回bean-B的实例
Bean类:
package hom.wang.vo;
public class BeanA {
private static BeanB beanB = new BeanB();
public static BeanB createBeanBInstance(){
return beanB;
}
}
public class BeanB {
// ...
}
xml 定义Bean:
<beans>
<bean id="beanA" class="hom.wang.vo.beanA"/>
<bean id="beanB"
factory-bean="beanA"
factory-method="createBeanBInstance"/>
beans>
这种方法表明工厂bean本身可以通过依赖注入(DI)进行管理和配置。