官术网_书友最值得收藏!

Alternatives

Alternatives are explicitly declared within beans.xml for them to be considered by the container for typesafe resolution, as they are disabled by default. One of the common uses of alternatives is for different deployment scenarios, such as for test deployments.

To create an alternative, a bean only requires the @Alternative annotation to be present on its type:

@Alternative
@Admin
@User
public class MockAccount implements Account { ... }

Activation of the alternative, for beans within the same archive, would need a beans.xml with:

<beans
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
  http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">

  <alternatives>
    <class>org.cdibook.chapter2.alternatives.MockAccount</class>
  </alternatives>
</beans>
Note

If an injection point has ambiguous dependencies during container startup, the container will look for any bean that is an alternative amongst the list of eligible beans. If there is only one alternative bean that is eligible, it will be injected instead of causing a deployment exception.

主站蜘蛛池模板: 沾化县| 叙永县| 保德县| 加查县| 涞水县| 内丘县| 肥城市| 京山县| 忻州市| 维西| 平安县| 合阳县| 松潘县| 景德镇市| 汾西县| 德州市| 鸡东县| 长武县| 许昌县| 元朗区| 光山县| 乐东| 台东市| 宁陵县| 平凉市| 惠东县| 大同市| 淮北市| 汉源县| 额尔古纳市| 长寿区| 镇沅| 河北区| 郸城县| 五河县| 泰州市| 平阳县| 太康县| 周宁县| 大邑县| 托克逊县|