- JBoss Weld CDI for Java Platform
- Ken Finnegan
- 133字
- 2021-08-13 16:49:55
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.
推薦閱讀
- UI圖標創意設計
- Mastering Zabbix(Second Edition)
- Design Principles for Process:driven Architectures Using Oracle BPM and SOA Suite 12c
- Visual Basic程序設計教程
- 深入淺出Android Jetpack
- 教孩子學編程:C++入門圖解
- 精通Linux(第2版)
- BIM概論及Revit精講
- Delphi開發典型模塊大全(修訂版)
- 從“1”開始3D編程
- Isomorphic Go
- Raspberry Pi Robotic Projects
- HTML5 Game Development by Example:Beginner's Guide(Second Edition)
- C語言從入門到精通(微視頻精編版)
- JavaScript程序設計實例教程(第2版)