标签:color value 函数 get static 信息 做别名 命名法 其他
上文采用ID对bean进行命名,此标识位于一个容器中为唯一的。
不仅可使用ID命名bean标签,还可使用Name命名,同一容器中一个bean可存在多个name名,名称之间用分号或空格隔开。
<bean name="TestHello;TestHello2" class="bean.Hello"> <property name="name" value="Father"></property> </bean>
bean中命名要以小写字母开头,且用驼峰命名法命名。
可使用alias标签对bean标签做别名设置,其中name属性表示原bean名称,alias中可书写多个别名,别名之间用逗号隔开:
<alias name="TestHello" alias="hello,hello2,hello3"></alias>
Spring中类的实例化不必继承或实现任何接口与类,只需简单的类信息即可,即最基础默认的无参构造函数。
采用静态工厂方法需在类中书写一静态方法,此方法必须静态!方法返回值即为当前类对象,且类中要求存在无参构造函数。
在方法中,要返回实际的内容,即类中创建的静态的私有的当前类的对象之引用:
private static Hello hello = new Hello(); ? public static Hello createHello(){ return hello; }
在applicationContext.xml文件中,在bean标签中添加factory-method属性,即工厂方法,并指定方法名,亦为类中静态方法之名:
<bean name="TestHello;TestHello2" class="bean.Hello" factory-method="createHello"></bean>
实例工厂方法亦会于容器中取出当前bean之工厂方法创建bean,不可添加class属性!在factory-bean属性中传入当前容器中此实例的其他bean的标识,和工厂方法名,即可根据传入的实例创建对象:
<bean id="TestHello" class="bean.Hello"></bean> ? <bean id="HelloTest" factory-bean="TestHello" factory-method="createHello"></bean>
public class Hello{ private static Hello hello = new Hello(); public Hello createHello(){ return hello; } }
可以这样理解:此时的bean已不是常规使用所用的bean,已经成为一个工厂,可批量创建所处类的实例。并且一个工厂实例可批量创建多个bean:
<bean id="TestHello" class="bean.Hello"></bean> ? <bean id="HelloTest1" factory-bean="TestHello" factory-method="createHello"></bean> ? <bean id="HelloTest2" factory-bean="TestHello" factory-method="createHello"></bean> ? <bean id="HelloTest3" factory-bean="TestHello" factory-method="createHello"></bean>
并且一个类中可存在多个工厂方法用于获得实例:
public class Hello{ private static Hello hello = new Hello(); private static Hello hell2 = new Hello(); public Hello getHello1(){ return hello; } public Hello getHello2(){ return hell2; } }
韶光淑气_Spring_2.0 Bean创建+命名_2020年4月8日20:28:10
标签:color value 函数 get static 信息 做别名 命名法 其他
原文地址:https://www.cnblogs.com/agoodjavaboy/p/12662568.html