Based on the discussion in that thread, i understand that the
"lazy"
bean will be activated on the first access (of constructor, field or
method). So here's a silly question - What stops a MC bean developer to
mark all (or most of beans) as lazy? :) That way, almost of the beans
are going to be inited (and passed through various MC lifecycle phases?)
only when they are accessed. Would this be considered a right approach?
Definitely no. :-)
Why would you wanna "jump through hoops" for beans you know they
should/must be fully installed the moment they are dropped in.
e.g. vfs cache, log manager, deployers, binding service, ...
The proper criteria is up to the user, but it shouldn't be hard to spot
the right lazy candidates.
e.g. having TransactionManager in minimal conf
Ales Justin wrote:
>
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=154873
>
> Jaikiran Pai wrote:
>> Is there any place (forum or wiki or anything else) where i can read
>> about its usage or more about where these kind of lazy beans would
>> come in handy?
>>
>> -Jaikiran
>> Ales Justin wrote:
>>>> What are the SomeBeanProxy and OtherBeanProxy in these examples?
>>>
>>> Those are the lazy proxies generated by <lazy/>.
>>>
>>> We try to use the best lazy mechanism available.
>>> (1) Javassist (allows for class exposure in a proxy)
>>> (2) JBossAOP (although currently if this exists, (1) should too)
>>> (3) JDK dynamic proxies (needs interfaces)
>>>
>>> I would need to check if we can avoid the explicit injection,
>>> and use lazy nested directly:
>>>
>>> <property name="someProp"><lazy
bean"SomeBean"/></property>
>>>
>>>> And when exactly are these "lazy" beans installed?
>>>
>>> They have a dependency on the "bean", at Not_Installed state.
>>> Meaning the minute "bean" is installed in MC, you can have lazy
>>> proxy for it.
>>>
>>>> -Jaikiran
>>>> Ales Justin wrote:
>>>>> Aha, another thing you can use to optimize things.
>>>>> It's the lazy install of OnDemand beans.
>>>>>
>>>>> e.g.
>>>>> <bean name="SomeBean"
class="org.jboss.acme.Acme" mode="On Demand"/>
>>>>>
>>>>> <lazy bean="SomeBean">
>>>>> <interface>org.jboss.acme.IAcme<interface>
>>>>> </lazy>
>>>>>
>>>>> <bean name="DependantBean"
class="org.jboss.foobar.Foobar">
>>>>> <constructor>
>>>>> <parameter><inject
bean="SomeBeanProxy"></parameter>
>>>>> <constructor>
>>>>> </bean>
>>>>>
>>>>> If the bean doesn't have interfaces:
>>>>>
>>>>> <bean name="OtherBean"
class="org.jboss.acme.Acme" mode="On Demand"/>
>>>>>
>>>>> <lazy bean="OtherBean"
exposeClass="true"/>
>>>>>
>>>>> <bean name="DependantBean"
class="org.jboss.foobar.Foobar">
>>>>> <constructor>
>>>>> <parameter><inject
bean="OtherBeanProxy"></parameter>
>>>>> <constructor>
>>>>> </bean>
>>>>> _______________________________________________
>>>>> jboss-development mailing list
>>>>> jboss-development(a)lists.jboss.org
>>>>>
https://lists.jboss.org/mailman/listinfo/jboss-development
>>>>
>>>> _______________________________________________
>>>> jboss-development mailing list
>>>> jboss-development(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/jboss-development
>>>>
>>> _______________________________________________
>>> jboss-development mailing list
>>> jboss-development(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/jboss-development
>>
>> _______________________________________________
>> jboss-development mailing list
>> jboss-development(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/jboss-development
>>
> _______________________________________________
> jboss-development mailing list
> jboss-development(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/jboss-development
_______________________________________________
jboss-development mailing list
jboss-development(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-development