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

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.

主站蜘蛛池模板: 调兵山市| 治多县| 登封市| 山阳县| 阳江市| 本溪市| 开阳县| 宁夏| 永川市| 都昌县| 楚雄市| 锡林浩特市| 米泉市| 泽库县| 洮南市| 松原市| 元朗区| 定州市| 惠来县| 扎鲁特旗| 波密县| 宝坻区| 南乐县| 长寿区| 鄂州市| 阿图什市| 宜兴市| 许昌市| 蓝山县| 鄄城县| 库车县| 盱眙县| 和林格尔县| 甘洛县| 格尔木市| 乌拉特前旗| 明溪县| 桃源县| 长葛市| 中西区| 新竹县|