韶光淑气_Spring_2.0 Bean创建+命名_2020年4月8日20:28:10
Posted agoodjavaboy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了韶光淑气_Spring_2.0 Bean创建+命名_2020年4月8日20:28:10相关的知识,希望对你有一定的参考价值。
-
上文采用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的主要内容,如果未能解决你的问题,请参考以下文章
[Spring5]IOC容器_Bean管理XML方式_创建对象_set注入属性and有参构造注入属性
[Spring5]IOC容器_Bean管理注解方式_创建对象