自己写了个给bean设置属性的小测试,请大家看看结果

测试了
1自己写的
2java本身
3apache
4spring

代码已经上传,
谢面试简单测试结果
循环1000次
自己编写2->32
java自身1->15
apache3->78
spring4->16

循环10000
自己编写2->125
java自身1->16
apache3->203
spring4->31

循环100000
自己编写2->594
java自身1->203
apache3->562
spring4->219

大家可以自己试试看,代码在附件
1. 配置文档(使用构造器注入,singleton模式) ```xml <bean id="address1" class="Address"> <constructor-arg value="福建"/> <constructor-arg value="福州"/> </bean> <bean id="person1" class="Person" scope="singleton"> <constructor-arg value="小明"/> <constructor-arg value="21"/> <constructor-arg ref="address1"/> <property name="favorite"> <list> <value>足球</value> <value>听歌</value> <value>旅行</value> </list> </property> </bean> ``` 测试文档 ```java ApplicationContext context = new ClassPathXmlApplicationContext("config.xml"); Person person1 = (Person) context.getBean("person1"); System.out.println(person1); ``` 输出结果 ``` Person{name='小明', age=21, address=Address{province='福建', city='福州'}, favorite=[足球, 听歌, 旅行]} ``` 2. 配置文档(使用属性注入,prototype模式) ```xml <bean id="address2" class="Address"> <property name="province" value="江苏"/> <property name="city" value="南京"/> </bean> <bean id="person2" class="Person" scope="prototype"> <property name="name" value="小李"/> <property name="age" value="20"/> <property name="address" ref="address2"/> <property name="favorite"> <list> <value>跳舞</value> <value>读书</value> <value>看电影</value> </list> </property> </bean> ``` 测试文档 ```java ApplicationContext context = new ClassPathXmlApplicationContext("config.xml"); Person person2 = (Person) context.getBean("person2"); System.out.println(person2); ``` 输出结果 ``` Person{name='小李', age=20, address=Address{province='江苏', city='南京'}, favorite=[跳舞, 读书, 看电影]} ``` 3. 配置文档(使用注解注入) ```xml <context:annotation-config/> <bean id="address3" class="Address"> <property name="province" value="江西"/> <property name="city" value="南昌"/> </bean> <bean id="person3" class="Person" init-method="init" destroy-method="destroy"> <property name="name" value="小王"/> <property name="age" value="23"/> <property name="address" ref="address3"/> <property name="favorite"> <list> <value>跳舞</value> <value>唱歌</value> <value>旅游</value> </list> </property> </bean> ``` 测试文档 ```java ApplicationContext context = new ClassPathXmlApplicationContext("config.xml"); Person person3 = (Person) context.getBean("person3"); System.out.println(person3); ((ClassPathXmlApplicationContext) context).close(); ``` 输出结果 ``` 我创建了 Person{name='小王', age=23, address=Address{province='江西', city='南昌'}, favorite=[跳舞, 唱歌, 旅游]} 我销毁了 ``` 注:在Person类中需要添加init和destroy方法,用于在创建和销毁bean时输出相应信息。 ```java public void init() { System.out.println("我创建了"); } public void destroy() { System.out.println("我销毁了"); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值