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

Is my class a bean?

For almost every Java class that we as developers have ever written, the answer would be yes, most definitely, as long as the Java class has either a constructor with no parameters or a constructor that is annotated with @Inject.

There is only one requirement that CDI mandates for a Java class to be injected as a bean, and that's for the Java class to be packaged into an appropriate archive (such as a JAR or WAR) that contains a descriptor file called beans.xml. This descriptor file needs to be present in the META-INF folder of a JAR or the WEB-INF folder of a WAR.

It's perfectly fine for beans.xml to be completely empty or only contain the following XML content:

<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">
</beans>

For most applications, the sole purpose of beans.xml is to notify CDI that there are beans within the archive that need to be scanned, so that they are available to have beans injected into them as well as be injected into other beans that may not be present within this archive.

主站蜘蛛池模板: 开封县| 宜兴市| 商城县| 霍山县| 江西省| 秦皇岛市| 和平区| 建德市| 泸水县| 嘉祥县| 富锦市| 南宫市| 武宁县| 海兴县| 长葛市| 通州区| 平远县| 家居| 通江县| 湟中县| 光泽县| 团风县| 墨竹工卡县| 平武县| 迭部县| 靖宇县| 巢湖市| 桐柏县| 酉阳| 青川县| 东山县| 盐山县| 荔波县| 中阳县| 房山区| 桓台县| 吉木萨尔县| 乌兰察布市| 府谷县| 贵港市| 遵义县|